You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab Container Registry连接被拒绝问题求助(Docker部署)

问题:Docker部署GitLab后Container Registry连接被拒绝

问题现象

在Windows 10 Docker Desktop上部署GitLab并完成Container Registry配置后,执行Docker登录命令时出现连接被拒绝错误。

执行的登录命令:

docker login https://10.41.74.50:5005 -u root -p glpat-KUYeCWmUBJLCbKAdXEec

完整错误信息:

Error response from daemon: Get "https://10.41.74.50:5005/v2/": dialing 10.41.74.50:5005
with direct connection: connecting to 10.41.74.50:5005: dial tcp 10.41.74.50:5005:
connectex: No connection could be made because the target machine actively refused it.

相关配置

gitlab.rb配置

## GitLab URL
external_url 'https://10.41.74.50'

################################################################################
## Container Registry settings
##! Docs: https://docs.gitlab.com/ee/administration/packages/container_registry.html
################################################################################

registry_external_url 'https://10.41.74.50:5005'

### Settings used by GitLab application
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "10.41.74.50"
gitlab_rails['registry_port'] = "5005"

### Settings used by Registry application
registry['enable'] = true

################################################################################
## GitLab NGINX
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html
################################################################################

nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/10.41.74.50.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/10.41.74.50.key"

################################################################################
# Let's Encrypt integration
################################################################################
letsencrypt['enable'] = false

docker-compose.yml配置

version: '3.7'

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: always
    hostname: '10.41.74.50'
    container_name: gitlab-latest-test
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - D:/T_gitlab_volume/etc/gitlab:/etc/gitlab
      - D:/T_gitlab_volume/var/log/gitlab:/var/log/gitlab
      - D:/T_gitlab_volume/var/opt/gitlab:/var/opt/gitlab
      - D:/T_gitlab_volume/var/opt/gitlab/backups:/var/opt/gitlab/backups

环境信息

Docker version 24.0.2, build cb74dfc
Docker Compose version v2.19.1
Docker-Desktop version 4.22.1

GitLab容器仓库页面截图

GitLab容器仓库页面截图

解决步骤

  • 添加容器端口映射
    docker-compose.yml中未映射Registry服务的5005端口,导致外部无法访问容器内的Registry服务。修改ports节点,添加- '5005:5005':

    ports:
      - '80:80'
      - '443:443'
      - '22:22'
      - '5005:5005'
    
  • 重启GitLab容器
    配置修改后,执行命令重启容器:

    docker-compose down
    docker-compose up -d
    

    等待GitLab完全启动(通常需要5-10分钟)后,重新尝试登录。

  • 验证Registry服务状态
    进入容器内部检查Registry服务运行状态:

    docker exec -it gitlab-latest-test gitlab-ctl status registry
    

    若服务未运行,重新应用配置并启动服务:

    docker exec -it gitlab-latest-test gitlab-ctl reconfigure
    docker exec -it gitlab-latest-test gitlab-ctl start registry
    
  • 检查防火墙设置
    确认Windows防火墙允许5005端口的入站连接,可临时关闭防火墙测试连接是否恢复。

  • 处理自签名证书信任问题(可选)
    若使用自签名证书,需将证书添加到Docker信任列表:

    1. 从容器复制证书到本地Docker证书目录:
      docker cp gitlab-latest-test:/etc/gitlab/ssl/10.41.74.50.crt "C:\Program Files\Docker\Docker\resources\certs.d\10.41.74.50:5005\ca.crt"
      
    2. 重启Docker Desktop后重新尝试登录。

内容的提问来源于stack exchange,提问作者Burak Deniz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:03:18