容器之间未创建链接

Links not being created between containers

我有一个非常简单的 2 个容器应用程序,1 个 运行ning Tomcat 另一个 Redis。我正在尝试使用 docker-compose 但容器之间的 link 不起作用。

如果我简单地用下面的命令做一个 运行 就很高兴了。

docker run -d --name db redis
docker run -d -P --name web --link db web

当我尝试使用下面的 docker-compose.yml 文件时,容器之间没有 link。

version: '2'
 services:
  web:
   image: web
  links:
   - redis
  ports:
   - "8080:8080"
 redis:
  image: redis

没有使用 docker-compose 创建的环境变量,并且 /etc/hosts 文件没有更新。

我很困惑,因为这实际上是我在许多站点(包括 docker.com 上找到的几个示例的副本。任何帮助将不胜感激。

在 compose 的第 2 版中,您不需要链接。您应该能够连接到 redis 容器,只需引用主机名 redis。它不会出现在环境变量或 /etc/hosts 中,因为网络现在是 docker 中的第一个 class 功能,而是使用内置的 DNS 解析。

自从引入新的网络模型后,每个容器都在网络上启动(呃,默认情况下 default)并且可以使用它们的服务或容器名称相互通信。