因为你没有发布你的作文。我做了一些假设。假设的组成如下
version: '3'
services:
nginx:
image: nginx
ports:
- 80:80
- 443:443
depends_on:
- jenkins
- sonar
jenkins:
image: jenkins
sonar:
image: sonarqube
所有这些都在运行10.10.10.50
。现在,如果您将 DNS 设置为10.10.10.20
内部和外部,两者jenkins.network.com
将决心10.10.10.50
。但在你想要的 docker 网络内部jenkins.network.com
解析为容器的IP。
因此,如果以上所有内容都是正确的,那么下面是最简单的解决方案
version: '3'
service:
nginx:
image: nginx
ports:
- 80:80
- 443:443
depends_on:
- jenkins
- sonar
jenkins:
image: jenkins
networks:
default:
aliases:
- jenkins.network.com
sonar:
image: sonar
networks:
default:
aliases:
- sonar.network.com
在 nginx 镜像上我可以到达jenkins.network.com
root@be6492f18851:/# telnet jenkins.network.com 8080
Trying 172.23.0.3...
Connected to jenkins.network.com.
Escape character is '^]'.
Connection closed by foreign host.
您可以从詹金斯和声纳容器中执行此操作并获得相同的结果
Edit-1
如果您希望 DNS 通过代理,您可以更改该网络的别名
version: '3'
service:
nginx:
image: nginx
ports:
- 80:80
- 443:443
depends_on:
- jenkins
- sonar
networks:
default:
aliases:
- sonar.network.com
- jenkins.network.com
jenkins:
image: jenkins
sonar:
image: sonar