将我的自定义 docker 容器链接到另一个自定义容器
Linking my custom docker container to another custom container
我有两个 Rails docker 个容器:
第一个是前端应用程序 (container1),另一个是后端 API (container2)。
可以在 http://0.0.0.0:3000. The front-end connects to the backend API via http://0.0.0.0:5000 访问前端。
我已经用它来启动前端并将其链接到后端
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
如何 get/expose 我的后端 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
如果您的软件支持通过 /etc/hosts
进行名称解析(除非您在前端手动进行名称解析,否则很有可能),您可以只使用 -e BACKEND_API="http://backend:5000"
,它会直接从 /etc/hosts
自动提取正确的 IP。
我有两个 Rails docker 个容器:
第一个是前端应用程序 (container1),另一个是后端 API (container2)。
可以在 http://0.0.0.0:3000. The front-end connects to the backend API via http://0.0.0.0:5000 访问前端。
我已经用它来启动前端并将其链接到后端
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
如何 get/expose 我的后端 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
如果您的软件支持通过 /etc/hosts
进行名称解析(除非您在前端手动进行名称解析,否则很有可能),您可以只使用 -e BACKEND_API="http://backend:5000"
,它会直接从 /etc/hosts
自动提取正确的 IP。