如何使用环境变量将主机名和/或IP地址发送到自己的容器中

时间:2018-06-26 22:03:52

标签: docker docker-compose docker-swarm

我目前正在以群发模式使用docker,我想使用环境变量将容器的主机名和/或IP地址发送到所述容器中。

version: "3"
services:
  test:
    image: someimage
    deploy: 
      replicas: 2
      restart_policy:
        condition: on-failure
    environment:
      - HOSTNAME=test
    networks:
      - my-network
networks:
  my-network:
    external:
      name: my-network

我尝试使用上面的示例,但是它不起作用。目的是使每个副本具有自己的主机名和/或IP地址。我该如何实现?

1 个答案:

答案 0 :(得分:1)

每个容器的主机名都与短ID相同,该短ID已在容器中设置为变量HOSTNAME。

如果您尝试直接从该docker网络上的其他容器访问副本,则可以使用反向查找(nslookup,dig)任务。获取IP列表(您不应该在配置或编写文件中硬编码)

如果要将主机的主机名注入服务任务中,则可以使用templates in compose