Docker Compose 主机名命令不起作用

标签 docker docker-compose

我无法获取 Docker Compose hostname 命令去工作。

我正在运行一个简单的 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然后ping redis2host与其他 Redis 容器通信,但 ping 无法到达目的地。我可以使用 ping redis2 ping 另一个 Redis 容器.

ping redishost2应该可以,不是吗?

最佳答案

hostname 指令只是设置容器内的主机名(即响应 hostnameuname -n命令)。它不会产生服务的 DNS 别名。为此,您需要 aliases指示。由于该指令是针对每个网络的,因此您需要明确网络而不是使用 compose 默认值,例如:

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:

关于Docker Compose 主机名命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46239662/

相关文章:

ruby-on-rails - Dockerfile是创建一个镜像还是多个镜像?

nginx - docker + Nginx : Getting proxy_pass to work

node.js - 我如何从本地主机服务?

python - 为什么我在构建 docker 镜像时遇到这个错误?

amazon-web-services - 将使用 docker-compose 创建的应用程序部署到 AWS

python - 无法让我的 python 应用程序在 docker 容器中启动

docker - 无法连接到 wss ://ip:5063 when deploy restcomm docker to public server

Docker 显示当前注册表

python - 无法使用pymongo连接到mongdb docker

docker-compose - jhipster docker-compose : *TypeError: Cannot read property 'generator-jhipster' of undefined*