下载training/webapp后,运行该容器默认会打开一个5000端口的helloworld示例Web工程。
想将该默认5000端口映射至主机的 6666端口,发现外网无法访问该端口。其他端口(比如6655或者8888)等均可正常访问
先记录下问题,以后有机会再详细看下。
[root@miniserver ~]# docker pull training/webapp Using default tag: latest latest: Pulling from training/webapp Image docker.io/training/webapp:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/ e190868d63f8: Pull complete 909cd34c6fd7: Pull complete 0b9bfabab7c1: Pull complete a3ed95caeb02: Pull complete 10bbbc0fc0ff: Pull complete fca59b508e9f: Pull complete e7ae2541b15b: Pull complete 9dd97ef58ce9: Pull complete a4c1b0cb7af7: Pull complete Digest: sha256:06e9c1983bd6d5db5fba376ccd63bfa529e8d02f23d5079b8f74a616308fb11d Status: Downloaded newer image for training/webapp:latest docker.io/training/webapp:latest [root@miniserver ~]# [root@miniserver ~]# docker run -d -p 6655:5000 training/webapp python app.py # 将容器的5000端口映射至host的6655端口 78dd53fcc94d23b696189ea38436537d8d0da21389cea20f1102a43efb092cb2 [root@miniserver ~]# [root@miniserver ~]# docker run -d -p 6666:5000 training/webapp python app.py bf30c05ae9c1eb29d2c696e791a7fe2682ebe9c379cdcc827c86ce939125d9bd [root@miniserver ~]# [root@miniserver ~]# docker run -d -p 8888:5000 training/webapp python app.py 9a3b04b0f29ceb8e527100cf71b3a8edbec2f566c12af2ba86842733b21f9a1a [root@miniserver ~]# [root@miniserver ~]# docker ps -a ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9a3b04b0f29c training/webapp "python app.py" 4 seconds ago Up 4 seconds 0.0.0.0:8888->5000/tcp, :::8888->5000/tcp exciting_wing bf30c05ae9c1 training/webapp "python app.py" 14 seconds ago Up 14 seconds 0.0.0.0:6666->5000/tcp, :::6666->5000/tcp modest_kepler 78dd53fcc94d training/webapp "python app.py" 19 seconds ago Up 18 seconds 0.0.0.0:6655->5000/tcp, :::6655->5000/tcp cranky_keller [root@miniserver ~]#
通过命令查看,主机的6666端口确定已经打开了
[root@miniserver ~]# netstat -anp | grep 6666 tcp 0 0 0.0.0.0:6666 0.0.0.0:* LISTEN 12504/docker-proxy tcp6 0 0 :::6666 :::* LISTEN 12510/docker-proxy [root@miniserver ~]# netstat -anp | grep 6655 tcp 0 0 0.0.0.0:6655 0.0.0.0:* LISTEN 12408/docker-proxy tcp6 0 0 :::6655 :::* LISTEN 12414/docker-proxy [root@miniserver ~]# netstat -anp | grep 8888 tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 12600/docker-proxy tcp6 0 0 :::8888 :::* LISTEN 12607/docker-proxy [root@miniserver ~]#
docker 主机的ip地址信息
[root@miniserver ~]# ifconfig docker0: flags=4163mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:c0ff:fe93:4839 prefixlen 64 scopeid 0x20 ether 02:42:c0:93:48:39 txqueuelen 0 (Ethernet) RX packets 420 bytes 27016 (26.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 446 bytes 47474 (46.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens34: flags=4163 mtu 1500 inet 192.168.176.129 netmask 255.255.255.0 broadcast 192.168.176.255 inet6 fe80::3914:8e0f:c1e6:d651 prefixlen 64 scopeid 0x20 ether 00:0c:29:01:7c:fe txqueuelen 1000 (Ethernet) RX packets 7078 bytes 591406 (577.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6223 bytes 1191126 (1.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
无法访问6666端口的问题web截图如下:



