Docker in" host"网络模式不会将端口绑定到主机

时间:2016-07-12 22:38:43

标签: docker docker-compose

在我的开发机器上,我正在尝试将docker容器连接到主机上的mysql服务器。为此,我已将网络模式设置为" host"像这样:

phpfpm:
  image: mageinferno/magento2-php:7.0.8-fpm-0
  container_name: php7fpm
  restart: always
  hostname: phpfpm
  ports:
    - "9000:9000"
  environment:
    - APP_MAGE_MODE=developer
  volumes:
    - /Users:/Users
    - /usr/local/var/log/nginx:/var/www/logs
  net: "host"

问题是,在启动docker容器后,我无法从主机远程登录到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

为什么容器没有将端口绑定到主机?我在这里缺少什么?

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

1 个答案:

答案 0 :(得分:1)

您是否有理由尝试使用主机网络?设置可能有点棘手,主要用于非常特殊的用例。至少,您需要确保 Docker主机通过以下方式允许该端口:

iptables -I INPUT 1 -p tcp -m tcp --dport 9000 -j ACCEPT

否则你最好坚持使用桥接模式。