如何使用docker和travis找到网络ip?

时间:2016-07-21 16:34:57

标签: networking docker travis-ci

在我的本地设置中,我可以运行...

docker run --name myapp -e HOST=$(docker-machine ip default) --user root myapp

...然后使用$HOST连接到任何其他容器(例如一个运行mongodb)。

但是,在特拉维斯,docker-machine不存在。因此,我不能简单地将该行放在我的.travis.yml

如何获取网络IP?

1 个答案:

答案 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

选项2

创建网络

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