根据https://docs.docker.com/userguide/dockerlinks/,我可以做以下操作:
$ sudo docker run -t -i --rm --link db:db training/webapp /bin/bash
root@aed84ee21bde:/opt/webapp# cat /etc/hosts
在/etc/hosts文件中将有两个条目用于我命名为db
的链接:
172.17.0.7 aed84ee21bde
. . .
172.17.0.5 db
但是,当我运行它时,我只得到一个hosts文件条目作为id,而不是名称。
这是我正在尝试的:
$ sudo docker run -d --name ghost dockerfile/ghost
$ sudo docker run -d --name nginx -p 80:80 --link ghost:ghost dockerfile/nginx
这应该在我命名为nginx的容器的/etc/hosts
中给我两个条目。然而,当我运行$ sudo cat `docker inspect --format '{{.HostsPath}}' nginx`
时,我所得到的是:
172.17.0.2 da1afa360504
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.17.0.2 ghost
这样的条目吗?
就我所知,我做的每件事都是正确的。我是不是漏掉了什么?
Mark向我展示了他可以很好地创建链接,这让我走上了正确的道路。我用$ docker version
检查了我的docker版本,并注意到我落后于
Client version: 0.9.1
Go version (client): go1.2.1
Git commit (client): 3600720
Server version: 0.9.1
Git commit (server): 3600720
Go version (server): go1.2.1
Last stable version: 1.1.2, please update docker
我试着升级到最新的Ubuntu,但是没有成功。要升级,我必须遵循https://askubuntu.com/questions/472412/how-do-i-upgrade-docker,它说要运行以下命令:
$ wget -qO- https://get.docker.io/gpg | sudo apt-key add -
$ sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker
在那之后,我有了最新的版本和链接工作!
适合我
<标题> 例子创建容器
$ docker run -d --name container1 ubuntu sleep 1000
d4f1fe391b524d16154749f5e1d25fd340e4da8831440a5813bdb28bc5d63713
运行另一个链接的容器,打印出hosts文件
$ docker run -i -t --name container2 --link container1:container1 ubuntu cat /etc/hosts
..
..
172.17.0.6 container1
为"container1"创建一个条目
标题>