在我的本地设置中,我可以运行...
docker run --name myapp -e HOST=$(docker-machine ip default) --user root myapp
...然后使用$HOST
连接到任何其他容器(例如一个运行mongodb)。
但是,在特拉维斯,docker-machine
不存在。因此,我不能简单地将该行放在我的.travis.yml
。
如何获取网络IP?
答案 0 :(得分:1)
标志--link
使用指定运行容器的IP地址向/etc/hosts
添加条目
docker run --name myapp --link mongodb:mongodb myapp
但请注意:
默认的
docker0
网桥支持使用端口映射 和docker run --link
允许容器之间的通信docker0
网络。这些技术设置起来很麻烦 容易出错。虽然它们仍然可用作技术, 最好避免它们并定义自己的桥接网络 代替。
如果要添加已知的IP地址
,另一个选项是使用标志--add-host
docker run --name myapp --add-host mongodb:10.10.10.1 myapp
创建网络
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