当我使用docker时使用非常简单的命令:
@H_403_5@docker run -p 80:80 Nginx
端口转发工作正常,当我使用浏览器/ curl转到localhost:80时,我可以获得Nginx’欢迎页面’.
在我使用非常相似但docker-compose特定配置的同时:
@H_403_5@version: '3'
services:
Nginx:
image: Nginx
ports:
- "80:80"
当我做docker-compose并进入浏览器时 – 我看到无限加载,所以看起来端口转发没有正确配置,但我无法理解配置中的错误.
我尝试使用不同的浏览器和卷曲,我得到相同的结果 – 无限加载.
这里的Nginx只是一个例子,因为它很简单,事实上我对redis / MysqL / java图像有同样的问题,所以问题与Nginx无关.
我还尝试了以下方法通过docker-compose启动容器:
@H_403_5@docker-compose run -p 80:80 Nginx
docker-compose run --service-ports Nginx
但没有运气,我得到了同样的结果.
在两种情况下(docker run和docker-compose up)我都有相同的网络驱动程序类型 – bridge.
我已经比较了docker inspect< container id>的结果.对于这两种情况:http://i.prntscr.com/obvxi0yESEa92znLDEu_PA.png
和docker检查< network id>的结果:
http://i.prntscr.com/yyTpetvJSXa-dz4o9Pcl3w.png
ifconfig docker0结果:
@H_403_5@docker0 Link encap:Ethernet HWaddr 02:42:f1:9a:b6:72
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:f1ff:fe9a:b672/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:174 errors:0 dropped:0 overruns:0 frame:0
TX packets:837 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:47434 (47.4 KB) TX bytes:107712 (107.7 KB)
brctl显示结果:
@H_403_5@bridge name bridge id STP enabled interfaces
br-f7adc3956101 8000.02427f870e7f no
docker0 8000.0242f19ab672 no
主机上的ifconfig结果为:https://pastebin.com/6ufWeYTE
主机上的路由结果:
@H_403_5@Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 600 0 0 wlp4s0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 docker0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp4s0
docker和docker-compose都是使用适用于Linux的官方站点说明安装的.
主机操作系统:Ubuntu 17.04
更新:
我试图在compose配置中设置’可附加’网络属性,问题得到解决.虽然还不清楚为什么会这样.
networks:
default:
attachable: true
最佳答案
原文链接:/docker/436804.html