Я использую следующую систему:
[alexus@wcmisdlin02 Desktop]$ rpm -q docker
docker-1.9.1-25.el7.centos.x86_64
[alexus@wcmisdlin02 Desktop]$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[alexus@wcmisdlin02 Desktop]$ uname -a
Linux wcmisdlin02.uftmasterad.org 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 31 16:04:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[alexus@wcmisdlin02 Desktop]$
Я имею в виду Compose File Ссылка для синтаксиса docker-compose.yml
:
[alexus@wcmisdlin02 Desktop]$ cat docker-compose.yml
nginx:
container_name: nginx
image: nginx
ports:
- "80:80"
[alexus@wcmisdlin02 Desktop]$ docker-compose up
Creating nginx
ERROR: for nginx Cannot start container fcaba40fb21cc64f514d71eb8117ba0f2102482be6e74615e96261667403a236: failed to create endpoint nginx on network bridge: COMMAND_FAILED: '/sbin/iptables -w2 -t nat -A DOCKER -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0' failed: iptables: No chain/target/match by that name.
Attaching to
[alexus@wcmisdlin02 Desktop]$
Если я удалю часть портов
из docker-compose.yml
, контейнер запустится , но очевидно, что сеть настроена не так, как мне нужно.
Мне нужен контейнер nginx
, чтобы начать прослушивание порта 80 на хосте.
Что я делаю не так?
Я предполагаю, что это была ошибка, поскольку я попробовал это снова, и теперь он работает. Я обновил пакет docker
до последней версии:
[alexus@wcmisdlin02 ~]$ rpm -q docker
docker-1.10.3-44.el7.centos.x86_64
[alexus@wcmisdlin02 ~]$
iptables: Нет цепочки / цели / совпадения с таким именем.
Что-то в вашей системе удалило правила Docker iptables. Их можно воссоздать, перезапустив службу Docker.