首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从Docker 19.03.15更新到20.10.5后内部网络中断

从Docker 19.03.15更新到20.10.5后内部网络中断
EN

Stack Overflow用户
提问于 2021-05-11 08:36:28
回答 1查看 24关注 0票数 0

我使用下面的docker-compose.yml来运行一个带有一个运行器的停靠的GitLab实例。两者都在同一个网络中。(网桥名称是显式设置的,因为防火墙规则依赖于它。)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3.9'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: 'unless-stopped'
    hostname: 'gitlab.example.com'
    ports:
      - '8080:80'
      - '8022:22'
    environment:
      [...]
    volumes:
      [...]
  runner:
    image: 'gitlab/gitlab-runner:alpine'
    restart: 'unless-stopped'
    hostname: 'gitlab-runner.example.com'
    depends_on:
      - 'web'
    environment:
      [...]
    volumes:
      [...]
networks:
  default:
    driver: 'bridge'
    ipam:
      driver: 'default'
      config:
        - subnet: '172.16.1.0/24'
    driver_opts:
      com.docker.network.bridge.name: 'br-gitlab'

这在Docker19.03.15上运行良好,但在升级到20.10.5之后,runner不能再连接到web。在runner内的Bash中手动执行相同的操作会呈现相同的“连接被拒绝”:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ curl https://gitlab.example.com/user/repo.git/
Connecting to gitlab.example.com (172.16.1.2:443)
wget: can't connect to remote host (172.16.1.2): Connection refused

runner容器中有网络,我可以访问其他站点,也可以解析域名。显然,这与iptables (在主机上)无关,关闭这些防火墙后问题仍然存在。

我已经检查了Docker的更改日志,但没有看到任何可以解释这一点的更改。你知道我在这没看到什么吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-11 14:45:18

弄清楚了:

我的设置使runner从gitlab.example.com:443获取源代码,这是主机上的Nginx代理所服务的端口。这在Docker19上起作用了,然而,从Docker20开始,runner容器不能再通过主机连接。这完全没问题,解决方案是:告诉runner在克隆源时直接用web联系GitLab服务器。config.toml中的每个runner都必须包含:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
url = "http://172.16.1.2:8080/"
clone_url = "http://172.16.1.2:8080/"         # <- this one was missing
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67483235

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文