现象

使用docker -p 参数将容器的端口映射到宿主机上。如:

docker run  -d -p 30080:80 nginx:latest

可以看到宿主机上的端口已经映射完成了,也启动了。

root@workstation:~# netstat -tulpn|grep 30080
tcp6       0      0 :::30080                :::*                    LISTEN      31189/docker-proxy  

但是通过curl 127.0.0.1:30080会报错,telnet 127.0.0.1 30080也没有反应。

 

问题解决

docker安装以后会虚拟出来一个docker0的网卡,CentOS 7.2重启以后这个网卡的模式有点问题,需要将docker0设置为混杂模式,命令如下:

ifconfig docker0 promisc

检查混杂模式是否设置成功 , <UP,BROADCAST,PROMISC,MULTICAST>

root@workstation:~# ifconfig docker0
docker0: flags=4355<UP,BROADCAST,PROMISC,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:52ff:fe10:1151  prefixlen 64  scopeid 0x20<link>
        ether 02:42:52:10:11:51  txqueuelen 0  (以太网)
        RX packets 1424  bytes 211672 (211.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1685  bytes 9343004 (9.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐