一个Docker容器如何调用另一个Docker容器

我有两个Docker容器

  1. 一个Web API
  2. 调用Web API的控制台应用程序

现在,在我的本地web api是本地主机和控制台应用程序调用API没有问题。但是,我不知道什么时候这两件事是Docker化,我怎么可能使Dockerized API应用程序的Dockerized API的Url?

我不认为我需要一个Docker撰写,因为我通过API的Url作为API的参数,所以它只是确保Dockerized API's URL可以通过Dockerized Console访问

有任何想法吗?

使用撰写function可以很容易地解决问题。 通过撰写,您可以像这样创build一个configuration文件( 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 

为了使它运行,只需调用这样的:

 docker-compose up 

这是运行所有堆栈的最好方法,所以请检查以下参考: https : //docs.docker.com/compose/

成功!

这个想法不是传递url,而是要调用的另一个容器的主机名。
请参阅撰写中的联网

默认情况下,Compose会为您的应用程序设置一个networking。 服务的每个容器都join默认networking,并且该networking上的其他容器都可以访问它们,并且可以通过与容器名称相同的主机名来发现它们。

这是什么replace弃用的 – --link选项 。

如果你的容器没有运行在一个Docker服务器节点上,那么Docker Swarm模式将在多个节点上启用这个发现。

您可以使用docker runlink选项:

运行API:

 docker run -d --name api api_image 

运行客户端:

 docker run --link api busybox ping api 

你应该看到api可以被docker解决。

也就是说,用docker-compose操作仍然是一个更好的select。