gpt4 book ai didi

docker - 容器之间的链接不适用于 docker-compose 版本 2

转载 作者:IT老高 更新时间:2023-10-28 12:43:58 25 4
gpt4 key购买 nike

版本 2 docker-compose 文件中的容器之间的链接不起作用。

只有在使用“旧”版本 1 格式时,我才能在容器的/etc/hosts 中看到链接。

我有以下基本版本 2 docker-compose.yml 文件。

version: '2'services:  my-app:    image: tomcat:8.0    container_name: my-app1    links:      - my-redis  my-redis:    image: redis    container_name: my-redis1

当我运行以下命令时:

docker-compose up -d

我看到启动了两个容器,但是在/etc/hosts 文件中没有创建链接:

docker exec -it my-app1 cat /etc/hosts
    127.0.0.1       localhost    ::1     localhost ip6-localhost ip6-loopback    fe00::0 ip6-localnet    ff00::0 ip6-mcastprefix    ff02::1 ip6-allnodes    ff02::2 ip6-allrouters    172.18.0.3      2abb84ccada9

我可以从“my-app1”使用“my-redis1”的 IP 地址 ping 另一个容器,但不能“ping my-redis1”(基于名称)。

这可能是什么问题?

附加信息:

  • Docker 版本 1.10.0,内部版本 590d5108
  • docker-compose 版本 1.6.0,构建 d99cad6
  • Linux 内核:4.3.5-300.fc23.x86_64

最佳答案

使用 docker-compose 版本 2,默认情况下,同一网络中的“服务”(容器)在它们之间链接。

使用下面的 docker-compose.yml 文件

version: '2'

services:
my-app:
image: tomcat:8.0
container_name: my-app1
links:
- my-redis
my-redis:
image: redis
container_name: my-redis1

您只需从 my-redis 容器执行 ping my-app 并从 my- 执行 ping my-redis app 容器以检查它们是否已链接。

例如:

$ docker-compose up -d
$ docker exec -it my-app1 bash
# ping my-redis

您可以在以下链接中获得更多信息: https://blog.docker.com/2016/02/compose-1-6/ https://github.com/docker/compose/blob/master/docs/networking.md

关于docker - 容器之间的链接不适用于 docker-compose 版本 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35297093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com