繁体   English   中英

docker-compose.yml中的主机名在Mac上无法识别(但在Linux上有效)

[英]hostname in docker-compose.yml fails to be recognized on on mac (but works on linux)

我正在使用下面的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"

在此先感谢您提供任何线索或提示!

“ 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

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM