无法访问带有docker run的链接容器(不存在/ etc / hosts中的映射)

时间:2015-06-19 08:22:38

标签: docker

我有一个名为&#34的运行mysql容器; drupaldistribution_mysql_1" (id 307b58c78108)。

现在我想用一个名为" drush"的命令工具启动另一个容器,它可以访问mysql容器。我使用命令:

$ docker run --link 307b58c78108:db --volumes-from drupaldistribution_data_1 -w /data/www/drupal drush/drush sqlc && cat /etc/hosts

但是,drush容器中的/ etc / hosts文件不包含有关链接容器的信息:

127.0.0.1   localhost
127.0.1.1 docker-host docker-host

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Docker检查drush容器返回:

$ docker inspect -f "{{ .HostConfig.Links }}" 7d5f4cea983e

[/drupaldistribution_mysql_1:/tender_banach/db]

我运行docker版本:Docker版本1.6.2,构建7c8fca2(在vagrant debian机器内)。

为什么hosts文件中没有关于链接的mysql容器的引用?

1 个答案:

答案 0 :(得分:0)

我的猜测是问题归因于--volumes-from。尽量不要在数据库和其他容器之间共享数据。 当我尝试时,我有127.0.1.1 docker-host docker-host行但它是你本地/ etc / hosts的一部分吗?

此外,您可以使用名称--link代替ID。

最后,如果它仍然失败,你总是可以从环境中拔出ip。确保您的mysql图像公开了一个端口,一旦您链接它,您将在环境中拥有DB_PORT_XXXX_TCP_ADDR