Docker撰写无法正确设置容器链接

我最近开始使用Docker Compose,然后引入官方文档。 我做的第一个例子(见这里 )在docker-compose.yml中定义了两个容器,如果我理解了它们的话,默认情况下容器是链接的。 他们的.yml看起来和我的一样:

version: '2' services: web: build: . ports: - "5000:5000" volumes: - .:/code depends_on: - redis redis: image: redis 

但是,使用docker exec来查看正在运行的Web容器,发现在/ etc / hosts中没有用于redis的DNS条目。 我也无法通过名称ping到redis容器,只能用于容器的IP地址。 这是我的/ 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 e886da2c2a78 

我也检查了Github上的错误报告,但是我发现的build议到目前为止并不适用于我。 我可以排除任何防火墙问题的可能性,因为firewalld没有运行在我的主机上。

有任何想法吗?

我的设置:

  • Docker版本1.11.1
  • Docker撰写版本1.7.1
  • 操作系统:Win7上Oracle VirtualBox上的Ubuntu 16.04

我在用着:

 $ docker --version Docker version 1.11.1, build 5604cbe 

如果我逐字使用你docker-compose.yml文件,并且下面的DockerfileDockerfile docker-compose build:

 FROM alpine RUN apk add --update darkhttpd CMD ["darkhttpd", "/var/www/localhost/htdocs"] 

然后,我开始一切:

 $ docker-compose up -d 

然后inputWeb容器:

 $ docker exec -it outofbounds_web_1 sh 

然后ping redis

 / # ping -c 1 redis PING redis (172.20.0.2): 56 data bytes 64 bytes from 172.20.0.2: seq=0 ttl=64 time=0.166 ms --- redis ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.166/0.166/0.166 ms 

这一切正常。

正如在注释中提到的那样,没有对/etc/hosts修改,因为现在通过dns查找来处理名称parsing。