我正在使用下面的docker-compose'recipe'来调出一个运行风暴流处理框架组件的容器。我发现在Mac上
当我进入容器时(一旦它通过docker exec -t -i <container-id> bash
启动并运行)
我做ping storm-supervisor
我收到了错误
'未知主机'。但是,当我在Linux上运行相同的docker-compose脚本时
主机被识别并且ping成功。
无法解析主机导致Storm组件出现问题......但是什么 对于这个问题,该组件正在执行的操作可以忽略。我很清楚我是否想通了 如何让Mac的docker-compose行为与Linux相匹配,那么我就没有问题了。
我想我遇到了这篇文章中提到的问题: 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"
提前感谢任何线索或提示!
答案 0 :(得分:5)
“network_mode:host”在docker mac上无效。我遇到了同样的问题,我在桥接网络中的容器很少,而主机网络中的容器很少。 但是,您可以将所有容器移动到自定义桥接网络。它为我解决了。 您可以编辑docker-compose.yml文件以拥有自定义桥接网络。
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
此外,执行以下命令以创建自定义网络。
docker network create storm
您可以通过
进行验证docker network ls
希望它有所帮助。