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

Docker 如何使用环境变量将主机名和/或ip地址发送到自己的容器中,docker,docker-compose,docker-swarm,Docker,Docker Compose,Docker Swarm,我目前正在swarm模式下使用docker,我想使用环境变量将容器的主机名和/或ip地址发送到所述容器中 version: "3" services: test: image: someimage deploy: replicas: 2 restart_policy: condition: on-failure environment: - HOSTNAME=test networks: - m

我目前正在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地址。如何实现这一点?

每个容器都有一个与其短ID相同的主机名,短ID已在容器中设置为变量主机名

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


如果要将主机的主机名注入服务任务,可以使用。

嘿,你似乎很有知识,我有一个情况,我有5个副本,需要能够相互通信。最终,这些副本中的每一个都将位于覆盖网络上,但目前它们位于默认的网桥网络上。我如何“了解”docker分配的IP以便与这些其他副本通信?我考虑过静态IP,但idk如果这是正确的方法,请问一个新问题Eladian