docker-compose.yml中的主机名无法在mac上识别(但在linux上运行)
我正在使用下面的docker-compose'recipe'来调出一个运行风暴stream处理框架组件的容器。 我发现在Mac的时候,当我进入容器(一旦它通过docker exec -t -i <container-id> bash
启动并运行),并且我ping storm-supervisor
我得到错误“unknown host”。 但是,当我在Linux上运行相同的docker-compose脚本时,主机被识别并且ping成功。
无法parsing主机导致Storm组件出现问题…但是该组件正在做什么可以忽略这个问题。 我很确定,如果我想出了如何让Mac的docker-compose行为与Linux匹配,那么我就没有问题了。
我想我遇到了这个post中提到的问题: https : //forums.docker.com/t/docker-compose-not-setting-hostname-when-network-mode-host/16728
version: '2' services: supervisor: image: sunside/storm-supervisor container_name: storm-supervisor hostname: storm-supervisor network_mode: host ports: - "8000:8000" environment: - "LOCAL_HOSTNAME=localhost" - "NIMBUS_ADDRESS=localhost" - "NIMBUS_THRIFT_PORT=49627" - "DRPC_PORT=49772" - "DRPCI_PORT=49773" - "ZOOKEEPER_ADDRESS=localhost" - "ZOOKEEPER_PORT=2181"
在此先感谢您的任何线索或提示!
在docker mac上,“network_mode:host”不能很好地工作。 我遇到了同样的问题,在桥网中我的容器很less,而在主机networking中我的容器很less。 但是,您可以将所有容器移动到自定义桥接networking。 它解决了我。 您可以编辑您的docker-compose.yml文件以build立自定义网桥。
version: '2' services: supervisor: image: sunside/storm-supervisor container_name: storm-supervisor hostname: storm-supervisor ports: - "8000:8000" environment: - "LOCAL_HOSTNAME=localhost" - "NIMBUS_ADDRESS=localhost" - "NIMBUS_THRIFT_PORT=49627" - "DRPC_PORT=49772" - "DRPCI_PORT=49773" - "ZOOKEEPER_ADDRESS=localhost" - "ZOOKEEPER_PORT=2181" networks: - storm networks: storm: external: true
另外,执行下面的命令来创build自定义networking。
docker network create storm
你可以通过validation
docker network ls
希望它有帮助。