docker反向代理DNS /networking问题

我会尽力解释和绘制出来

我想实现的是:

图

对不起,蹩脚的油漆图。 现在,如果我从10.10.10.0networking中find它的话,它是完美的。 问题是DNS将jenkins.network.comparsing到10.10.10.0networking。 我想通过代理回去,因为它有SSL端接到sonarqube服务器。 有没有一个好的方法来完成这项工作,以保持代理的服务? 我是否需要在Dockernetworking上创build第二个DNS服务器? 这是否可能与领事做,使外部和内部的服务指向相同的域名?

编辑:做这样的事情会工作,因为一切都通过代理。 所以当jenkins打声纳的时候,它认为它的ip真的是10.10.10.51,它可以通过那里击中它。 在这里输入图像说明

我需要做的是: 在这里输入图像说明 我需要它离开代理,然后通过代理回来。 IE:

172.16.10.2 —- 172.16.10.1 —– 10.10.10.50 —–代理然后接pipe路由到正确的位置(172.16.10.3:8080什么的)

既然你没有发表你的作文。 我做了几个假设。 撰写假设如下

 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都将parsing为10.10.10.50 。 但是在jenkins.network.comnetworking里面,你需要jenkins.network.com来parsing容器的IP。

所以如果以上都是正确的,那么下面是最简单的解决scheme

 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. 

你可以从jenkins和声纳容器做到这一点,并获得相同的结果

编辑-1

如果您希望DNS通过代理,则可以将别名更改为该networking

 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 

如何使用nginx做反向代理?
如果我没有误解,你想听443端口
与172.16.10.1相反
下面是一个nginxconfiguration示例

 server { listen 443; root /data/up1; location / { proxy_pass 172.16.10.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } 

希望能帮助到你