哪有一个码头工人容器调用另一个泊坞容器
问题描述:
我有两个Docker容器哪有一个码头工人容器调用另一个泊坞容器
- 一个Web API 调用的Web API现在
,我的本地网络上
我不认为我需要一个码头工人撰写,因为我是通过API的URL作为API的参数,所以它只是确保此事的Dockerized API's
网址是Dockerized Console
任何想法访问?
答
如果使用撰写功能,则可以轻松解决该问题。随着撰写,您只需创建一个配置文件(docker-compose.yml
)是这样的:
version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
,使其运行,只需调用up
这样的:
docker-compose up
这是运行所有的堆栈的最佳方式,请查看该参考文献: https://docs.docker.com/compose/
成功!
答
这个想法不是传递url,而是要调用其他容器的主机名。
见Networking in Compose
默认情况下撰写设立一个单一的网络为您的应用程序。服务的每个容器都加入默认网络,并且该网络上的其他容器都可以访问它们,并且可以通过与容器名称相同的主机名来发现它们。
这是什么取代deprecated --link
option。
如果您的容器未在单个Docker服务器节点上运行,则Docker Swarm Mode会在多个节点上启用该发现功能。
答
您可以使用link
选项与docker run
:
运行API:
docker run -d --name api api_image
运行客户端:
docker run --link api busybox ping api
您应该看到api
可以通过码头工人解决。
这就是说,与docker-compose
去仍然是一个更好的选择。