将我的自定义泊坞窗容器链接到另一个自定义容器

时间:2015-12-17 11:40:37

标签: docker boot2docker dockerfile docker-compose

我有两个Rails docker容器:

第一个是前端应用程序(container1),另一个是后端API(container2)。

可以在http://0.0.0.0:3000访问前端。前端通过http://0.0.0.0:5000连接到后端API。

我用它来启动将它连接到后端的前端

docker run --name=frontend --publish=3000:3000 --link=postgis:postgres --link=backend:backend --volume=/var/app:/app --tty=false --interactive=false --detach=true frontend

后端正常运行

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
cd4521524caf        backend             "/bin/bash -l -c /setu"   About an hour ago   Up About an hour    0.0.0.0:5000->5000/tcp                         backend

我观察到的链接后端在/ etc / hosts

中添加了一个条目
172.17.0.712    cd4521524caf
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  postgres 12b29087618e postgis

如何获取/公开我的后端docker容器的名称和别名以在/ etc / hosts中正确注册,以及如何公开值为172.17.0.12:5000的环境变量。

我注意到我链接的其他docker容器(比如postgis)添加了环境变量但是我的(后端)没有。

我希望我的环境变量像

BACKEND_API="http://172.17.0.12:5000"

/ etc / hosts条目为:

172.17.0.712    backend cd4521524caf backend

1 个答案:

答案 0 :(得分:0)

如果您的软件通过/etc/hosts支持名称解析(除非您在前端手动进行名称解析,否则非常非常可能),您只需使用-e BACKEND_API="http://backend:5000"即可自动从/etc/hosts直接提取正确的IP。