如何使用docker和travisfindnetworkingIP?
在我的本地设置中,我可以运行…
docker run --name myapp -e HOST=$(docker-machine ip default) --user root myapp
…然后使用$HOST
连接到任何其他容器(例如一个正在运行的mongodb)。
但是,在特拉维斯, docker-machine
不存在。 因此,我不能简单地把这一行放在我的.travis.yml
。
我如何获得networkingIP?
标志 – --link
添加到/etc/hosts
的条目与指定的正在运行的容器的IP地址
docker run --name myapp --link mongodb:mongodb myapp
但请注意:
默认的
docker0
桥接networking支持使用端口映射和docker run --link
来允许docker0
networking中的容器之间的通信。 这些技术很麻烦,容易出错。 虽然它们仍然可以作为技术提供给您,但最好避免使用它们,而是定义自己的桥梁networking。
另一种select是使用标志--add-host
如果你想添加一个已知的IP地址
docker run --name myapp --add-host mongodb:10.10.10.1 myapp
选项2
创build一个networking
docker network create --subnet=172.18.0.0/16 mynet123
运行mongodb容器分配静态IP
docker run --network mynet123 --ip 172.18.0.22 -d mongodb
将该ip添加到其他容器
docker run --network mynet123 --add-host mongodb:172.18.0.22 -d myapp