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容器仓库页面截图

解决步骤
添加容器端口映射
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信任列表:- 从容器复制证书到本地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" - 重启Docker Desktop后重新尝试登录。
- 从容器复制证书到本地Docker证书目录:
内容的提问来源于stack exchange,提问作者Burak Deniz
相关产品推荐
相关产品推荐

