vct*_*tls 3 linux networking docker docker-compose
我正在使用 Jenkins 在另一台服务器上运行 docker-compose 项目并运行测试。安装 Docker 的服务器与 Jenkins 服务器不在同一子网。我们使用不同的服务器,因为后者是由第三方提供的,无法旋转容器。
Docker 服务器是 Red Hat 7.7,运行 Docker CE 19.03.1。
Jenkins 通过 ssh 连接到 Docker 服务器,然后运行 docker-compose 命令。Docker 为项目创建了三个容器和一个默认网络。
一切都按预期进行,但偶尔,Jenkins 会失去与 Docker 服务器的所有连接。旋转容器后,当前作业将停止直至超时,通常会出现“管道损坏”错误。
从此以后,Jenkins就根本无法连接到Docker服务器了。任何端口上的所有连接都会超时。
直到我从我的电脑连接到它(由于某种原因我仍然可以),并手动停止并删除容器和网络。然后一切又恢复正常了。
问题似乎确实出在 Docker 网络上。但为什么它只会断开与 Jenkins 服务器的连接,而不断开我的 PC 的连接?为什么是随机的?
我知道这对于 SO 来说可能太模糊或太具体。我什至不知道从哪里开始调试。请在评论中告诉我应该添加哪些信息,或者我是否应该询问其他社区。
10.0.0.0/16往返流量10.1.0.0/16通过对等连接(默认网关)进行路由。
如果docker在子网中的实例上运行会创建一个具有 CIDR 的10.0.0.0/16桥接网络(即) ,那么您还将获得该流量的本地路由。br010.1.0.0
10.0.0.0/16尝试从到连接10.1.0.0/16将被路由到docker网络,而不是阻止您连接到子网中的实例的默认网关10.1.0.0/16。
您可以创建具有固定子网/网关的docker网络docker network create --subnet=172.128.28.0/24 br0来避免这些问题,即: 。
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |