gpt4 book ai didi

docker - 无法通过主机名/名称 ping Docker 容器

转载 作者:IT老高 更新时间:2023-10-28 21:23:50 26 4
gpt4 key购买 nike

升级到 Docker 引擎 1.10(从 1.08 开始)后,我注意到我的反向代理配置不再工作。

我所有的应用程序(包括用于反向代理的 Nginx)都是容器化的,并且通过容器名称进行通信。以下是 Nginx 中虚拟主机部分的示例:

server {
server_name jobs;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://jenkins:8080;
}
}

现在,我只能通过 IP 从 Nginx 容器 ping Jenkins 容器,但不能再通过容器名称。由于 IP 会因更新、重新部署等而不断变化,是否有更好的网络方式来避免在反向代理配置中定义 IP?

旧版 --link 不是一个选项,因为有很多容器。

最佳答案

您可以查看network-scope alias附带docker network connectdocker run .

使用别名启动容器允许您的 NGinx 反向代理到其配置中的该别名。
在运行时,该别名将解析为您稍后启动的容器。

参见“Docker Networking: Auto-discovering host names in a bridge network”中的示例。
请注意,您 will need a key-value store在 docker 1.10+ 网络中管理您的容器。


注意(2016 年 7 月)docker 1.12 及其 swarm mode ,它变得更加简单。
参见例如“The beautiful networking stack in Docker Swarm mode

docker swarm 将为您定义一个覆盖网络一个键值存储!容器将看到彼此。

另一个具体例子:“NGINX as a Reverse Proxy for Docker Swarm Clusters

关于docker - 无法通过主机名/名称 ping Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com