我有一个名为"drupaldistribution_mysql_1“(id为307b58c78108)的mysql容器正在运行。
现在,我想使用名为"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-allroutersDocker inspect on the drush container返回:
$ docker inspect -f "{{ .HostConfig.Links }}" 7d5f4cea983e
[/drupaldistribution_mysql_1:/tender_banach/db]我运行docker版本: Docker version1.6.2,build 7c8fca2 (在vagrant debian机器内部)。
为什么在hosts文件中没有关于链接的mysql容器的引用?
发布于 2015-06-20 02:37:08
我猜这个问题是由于--volumes-from造成的。尽量不要在你的数据库和其他容器之间共享数据。当我尝试时,我有127.0.1.1 docker-host docker-host行,但它是本地/etc/hosts的一部分吗?
此外,您可以将名称与--link一起使用,而不是使用id。
最后,如果仍然失败,您可以随时从环境中拉出ip。确保您的mysql镜像公开了一个端口,一旦您链接了它,您的环境中就会有DB_PORT_XXXX_TCP_ADDR。
https://stackoverflow.com/questions/30933392
复制相似问题