Docker Compose hostname命令不起作用

时间:2017-09-15 12:31:13

标签: docker docker-compose

我无法让Docker Compose hostname命令工作。

我正在运行一个简单的const newArray = Object.keys(data).map(key => data[key])

docker-compose.yml

我使用version: '3' services: redis1: image: "redis:alpine" hostname: redis1host redis2: image: "redis:alpine" hostname: redis2host 运行此功能后,我应该可以运行docker-compose up然后docker-compose exec redis1 /bin/ash与其他Redis容器通信,但ping无法到达目的地。我可以使用ping redis2host ping其他Redis容器。

ping redis2应该有效,不是吗?

1 个答案:

答案 0 :(得分:5)

hostname指令只是设置容器内的主机名(即,为了响应hostnameuname -n命令而返回的名称)。它不会导致服务的DNS别名。为此,您需要aliases指令。由于该指令是按网络进行的,因此您需要明确网络而不是使用撰写默认值,例如:

version: '3'
services:
  redis1:
    image: "redis:alpine"
    hostname: redis1host
    networks:
      redis:
        aliases:
          - redis1host
  redis2:
    image: "redis:alpine"
    hostname: redis2host
    networks:
      redis:
        aliases:
          - redis2host

networks:
  redis: