为什么我可以在Nginx配置中引用Docker服务?

时间:2019-04-24 16:53:06

标签: docker nginx

我使用docker部署了一个应用程序,它具有一些魔力。

docker-compose.yml

services:
  restapi:
    build: ...
  frontend:
    build: *nginx_image*

nginx.conf

upstream kitschoen_rest {
    server restapi:8000;
}

我很奇怪为什么可以在我的nginx配置中引用docker服务。我已经阅读了有关do​​cker容器网络和有关nginx上游服务器的信息...但是我仍然没有任何线索。有人可以阐明这一点吗? nginx如何连接到我的docker服务?

1 个答案:

答案 0 :(得分:1)

如果为容器指定了名称,则Docker拥有的嵌入式DNS服务器将创建一个DNS条目,其中给定的容器名称指向容器的IP。考虑Docker文档Embedded DNS server

  

Docker守护程序运行提供DNS的嵌入式DNS服务器   连接到同一用户定义的容器之间的分辨率   网络,以便这些容器可以将容器名称解析为IP   地址。如果嵌入式DNS服务器无法解析   请求,它将被转发到配置的任何外部DNS服务器   用于容器。为了在创建容器时提供便利,   仅在127.0.0.11可以访问的嵌入式DNS服务器将在   容器的resolv.conf文件。有关嵌入式DNS的更多信息   用户定义网络上的服务器,请参阅   用户定义的网络

您要提供服务名称,因此nginx可以将它们称为“真实”域。