从我的码头集装箱我想访问我的主机上运行的MySQL服务器127.0.0.1。我想从主机访问在我的容器容器上运行的Web服务器。我尝试这样做:码头:容器和主机端口的相互访问
docker run -it --expose 8000 --expose 8001 --net='host' -P f29963c3b74f
但没有端口显示为暴露:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
093695f9bc58 f29963c3b74f "/bin/sh -c '/root/br" 4 minutes ago Up 4 minutes elated_volhard
$
$ docker port 093695f9bc58
如果我没有做--net='host'
,端口都暴露出来,我可以在访问Web服务器容器。
主机和容器如何互相访问其他端口?
我正在测试的东西,所以我很确定docker使用主机上的一个随机端口。从程序员的帖子看来,当使用''--net = host'''时,你不能公开/映射端口。 – user2233706
@ user2233706当然,使用'--net = host'时不能暴露端口(这没有意义 - 这就是为什么你在“端口”列没有任何内容)。当你不'发布'端口你的主机如何知道暴露端口例如。 '8000-> XXXX'?主机上的端口应该用'docker0'接口(分别为'IP')访问。 – VladoDemcak