我有一个非常简单的2容器应用程序,1个运行Tomcat,另一个运行Redis。我试图使用docker-compose,但容器之间的链接不起作用。
如果我只是使用以下命令运行,那么一切都很开心。
docker run -d --name db redis
docker run -d -P --name web --link db web
当我尝试使用下面的docker-compose.yml文件时,容器之间没有链接。
version: '2'
services:
web:
image: web
links:
- redis
ports:
- "8080:8080"
redis:
image: redis
使用docker-compose没有创建环境变量,而/ etc / hosts文件没有更新。
我很困惑,因为这实际上是我在很多网站上找到的几个例子的副本,包括docker.com。任何帮助将不胜感激。
答案 0 :(得分:2)
在撰写的第2版中,您不需要链接。您应该能够连接到redis容器,只需引用主机名redis
即可。它不会出现在环境变量或/ etc / hosts中,因为网络现在是docker中的一流功能,而是使用内置的DNS解析。
由于新的网络模型进入,每个容器都在网络上启动(默认情况下为default
),并且可以使用其服务或容器名称相互通信。