我在同一台主机部署了两个容器,gitlab和jenkins,但是使用jenkins构建时,拉取gitlab仓库却总访问不到!

  • 创建Gitlab容器命令:
docker run -d \
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab \
--restart always \
--volume /opt/data/gitlab/config:/etc/gitlab \
--volume /opt/data/gitlab/logs:/var/log/gitlab \
--volume /opt/data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:13.10.0-ce.0
  • Gitlab容器中/etc/gitlab/gitlab.rb 配置文件中的external_url修改如下:
external_url 'http://127.0.0.1'
  • Gitlab容器中`/var/opt/gitlab/gitlab-rails​/etc/gitlab.yml配置如下:
host: 127.0.0.1
port: 80
https: false
  • 创建jenkins容器命令
docker run -d -p 8080:8080 --name jenkins --restart always jenkinsci/blueocean:1.24.5
  • 宿主机可以分别访问这两台主机,所有服务都正常,

    • 宿主机拉取,推送代码都是正常的。

    image.png

  • 但是在Jenkins新建项目的时候,22和80端口都访问不通

    image.png
    image.png

创建容器的时候,不是会将这两台容器绑定到默认的bridge上吗,会给他们分配同一个网段的地址,那么他们应该是互通的啊。
我使用docker inspect命令看了两个容器的ip

  • jenkins 172.17.0.2
  • gitlab 172.17.0.3

我在jenkins容器内使用curl使用ip访问仓库地址是可以访问的,但是在jenkins web页面中却还是链接不到仓库
image.png

既然已经绑定到默认的bridge上了,那是不是我定义一个network也是同样的情况?我也怀疑是配置文件中的'127.0.0.1'在捣鬼。。。
我去使用--link建立互联再试一下,还是我哪里操作有问题,请大神不吝赐教!

阅读 3.4k
1 个回答

你要不使用宿主机的ip地址试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题