我使用docker部署了一个应用程序,它具有一些魔力。
docker-compose.yml
services:
restapi:
build: ...
frontend:
build: *nginx_image*
nginx.conf
upstream kitschoen_rest {
server restapi:8000;
}
我很奇怪为什么可以在我的nginx配置中引用docker服务。我已经阅读了有关docker容器网络和有关nginx上游服务器的信息...但是我仍然没有任何线索。有人可以阐明这一点吗? nginx如何连接到我的docker服务?
答案 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可以将它们称为“真实”域。