我有一个名为&#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容器的引用?
答案 0 :(得分:0)
我的猜测是问题归因于--volumes-from
。尽量不要在数据库和其他容器之间共享数据。
当我尝试时,我有127.0.1.1 docker-host docker-host
行但它是你本地/ etc / hosts的一部分吗?
此外,您可以使用名称--link
代替ID。
最后,如果它仍然失败,你总是可以从环境中拔出ip。确保您的mysql图像公开了一个端口,一旦您链接它,您将在环境中拥有DB_PORT_XXXX_TCP_ADDR
。