Docker 码头工人;主持人;网络模式不会将端口绑定到主机

Docker 码头工人;主持人;网络模式不会将端口绑定到主机,docker,docker-compose,Docker,Docker Compose,在我的开发机器上,我试图让docker容器连接到主机上的mysql服务器。为此,我将网络模式设置为“主机”,如下所示: 问题是,启动docker容器后,无法从主机telnet到localhost 9000。当容器以桥接模式运行时,连接到9000上的容器不是问题。docker ps命令显示: CONTAINER ID IMAGE COMMAND CREATED

在我的开发机器上,我试图让docker容器连接到主机上的mysql服务器。为此,我将网络模式设置为“主机”,如下所示:

问题是,启动docker容器后,无法从主机telnet到localhost 9000。当容器以桥接模式运行时,连接到9000上的容器不是问题。docker ps命令显示:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6de4c973a34a mageinferno/magento2-php:7.0.8-fpm-0 "/usr/local/bin/start" 4 seconds ago Up 3 seconds php7fpm 容器ID映像命令已创建状态端口名称 6de4c973a34a mageinferno/magento2 php:7.0.8-fpm-0“/usr/local/bin/start”4秒前启动3秒php7fpm 为什么容器不将端口绑定到主机?我错过了什么


我在OS X 10.10上使用Docker for Mac(版本1.12.0-rc3-beta18(内部版本:9996))

您尝试使用主机网络有什么原因吗?它的设置可能有点棘手,并且主要用于非常特殊的用例。至少,您需要确保Docker主机通过以下方式允许该端口:

iptables-I INPUT 1-ptcp-mtcp-dport 9000-j ACCEPT


否则,您最好还是坚持桥接模式。

您在Windows上使用Docker机器吗?@NguyenSyThanhSon我正在使用Docker for MacTry来telnet 192.168.99.104:9000@NguyenSyThanhSon不起作用,超时。Docker使用172.16.4.20作为地址,远程登录到拒绝连接的地址。192.168.99.104被旧的流浪汉VM使用,如果我没记错的话?Docker for Mac使用xhyve。我在Mac上,在《Docker for Mac》问世之前,我不会使用Docker进行开发,因为它有太多问题。现在Docker for Mac已经推出,我想首先在我的php5.6本机设置中单独使用一个php7容器,但是将整个开发设置移动到容器中会有点麻烦,我仍然不知道Docker for Mac是否解决了它过去在Mac上遇到的所有问题,所以我只想将php7容器化,其他什么都不想。我没有iptables,但是“nc-l9000”很好用。 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6de4c973a34a mageinferno/magento2-php:7.0.8-fpm-0 "/usr/local/bin/start" 4 seconds ago Up 3 seconds php7fpm