我正在使用以下系统:
[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 文件参考语法为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]$
ports
如果我从中删除部分docker-compose.yml
,容器将启动,但显然网络没有按照我需要的方式设置。
我需要nginx
容器开始监听主机上的 80 端口。
我究竟做错了什么?
答案1
iptables: No chain/target/match by that name.
您的系统上的某些内容删除了 Docker 的 iptables 规则。可以通过重新启动 Docker 服务来重新创建它们。
答案2
我猜想是出现了错误,因为我再次尝试,现在它可以正常工作了。我确实将docker
软件包更新到了最新版本:
[alexus@wcmisdlin02 ~]$ rpm -q docker
docker-1.10.3-44.el7.centos.x86_64
[alexus@wcmisdlin02 ~]$