本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

源代码可在此处获取。
此版本同时包含arm64(基于arm64v8/debian:stable-slim)和arm32(基于arm32v7/debian:stable-slim)镜像,通过docker manifest文件合并为单个镜像。
需安装Docker,参见官方安装文档。
运行镜像:
docker run -d \ --hostname gitlab.example.com \ -p 443:443 -p 80:80 -p 22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
此命令将下载并启动GitLab CE容器,并发布SSH、HTTP和HTTPS所需端口。所有GitLab数据将存储在/srv/gitlab/的子目录中。容器将在系统重启后自动重启。
启动后,您可按照启动容器后部分说明登录Web界面。
如果使用SELinux,请运行以下命令:
docker run -d \ --hostname gitlab.example.com \ -p 443:443 -p 80:80 -p 22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab:Z \ -v /srv/gitlab/logs:/var/log/gitlab:Z \ -v /srv/gitlab/data:/var/opt/gitlab:Z \ ravermeister/gitlab
这将确保Docker进程有足够权限在挂载卷中创建配置文件。
GitLab容器使用主机挂载卷存储持久数据:
| 本地位置 | 容器内位置 | 用途 |
|---|---|---|
/srv/gitlab/data | /var/opt/gitlab | 存储应用数据 |
/srv/gitlab/logs | /var/log/gitlab | 存储日志 |
/srv/gitlab/config | /etc/gitlab | 存储GitLab配置文件 |
您可根据需求调整这些目录。
此容器使用官方Omnibus GitLab包,所有配置通过唯一配置文件/etc/gitlab/gitlab.rb完成。
要访问GitLab配置文件,可在运行中的容器内启动shell会话,以便浏览所有目录并使用您喜欢的文本编辑器:
docker exec -it gitlab /bin/bash
也可直接编辑/etc/gitlab/gitlab.rb:
docker exec -it gitlab vi /etc/gitlab/gitlab.rb
打开/etc/gitlab/gitlab.rb后,确保设置external_url指向有效URL。
要接收GitLab发送的电子邮件,需配置SMTP设置,因为GitLab Docker镜像未安装SMTP服务器。
您可能还需要启用HTTPS。
完成所有所需更改后,需重启容器以重新配置GitLab:
docker restart gitlab
注意: GitLab将在容器启动时自动重新配置。
有关配置GitLab的更多选项,请参见Omnibus GitLab文档。
您可通过在docker run命令中添加环境变量GITLAB_OMNIBUS_CONFIG来预配置GitLab Docker镜像。此变量可包含任何gitlab.rb设置,并在加载容器的gitlab.rb文件前求值。这样您可轻松配置GitLab的外部URL、数据库配置或Omnibus GitLab模板中的任何其他选项。
注意: GITLAB_OMNIBUS_CONFIG中包含的设置不会写入gitlab.rb配置文件,它们仅在加载时求值。
以下示例在启动容器时设置外部URL并启用LFS:
docker run -d \ --hostname gitlab.example.com \ --env GITLAB_OMNIBUS_CONFIG="external_url '[***] gitlab_rails['lfs_enabled'] = true;" \ -p 443:443 -p 80:80 -p 22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
注意,每次执行docker run命令时,都需要提供GITLAB_OMNIBUS_CONFIG选项。GITLAB_OMNIBUS_CONFIG的内容不会在后续运行中保留。
GitLab文档的环境变量部分还记录了一些有限的用于配置GitLab的环境变量。
启动容器后,您可访问http://localhost/或如果使用boot2docker则访问[***]。Docker容器可能需要一段时间才能开始响应请求。
首次访问GitLab时,系统会要求您设置管理员密码。更改密码后,可使用用户名root和设置的密码登录。
要将GitLab升级至新版本,需执行以下步骤:
停止运行中的容器:
docker stop gitlab
删除现有容器:
docker rm gitlab
拉取新镜像:
docker pull ravermeister/gitlab
使用之前指定的选项重新创建容器:
docker run -d \ --hostname gitlab.example.com \ -p 443:443 -p 80:80 -p 22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
首次运行时,GitLab将重新配置并更新自身。
我们提供GitLab Docker镜像的标记版本。
要查看所有可用标记,请访问:
要使用特定标记版本,将ravermeister/gitlab替换为所需版本,例如ravermeister/gitlab:13.5.1。
可通过修改-p标志使Docker使用您的IP地址并将所有流量转发到GitLab CE容器。
要在IP 1.1.1.1上暴露GitLab CE:
docker run -d \ --hostname gitlab.example.com \ -p 1.1.1.1:443:443 \ -p 1.1.1.1:80:80 \ -p 1.1.1.1:22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
然后您可通过[***]和[***]访问GitLab实例。
GitLab默认在容器内占用以下端口:
80(HTTP)443(如果配置HTTPS)8080(Unicorn使用)22(SSH守护进程使用)注意: 端口发布格式为
hostPort:containerPort。更多信息参见Docker关于[暴露入站端口][docker-ports]的文档。
警告: 不要使用端口
8080,否则会发生冲突。此端口已被容器内运行的Unicorn使用。
如果要为容器使用不同于80(HTTP)或443(HTTPS)的端口,需在docker run命令中添加单独的-p指令。
例如,要在端口8929暴露Web界面,在端口2289暴露SSH服务,使用以下docker run命令:
docker run -d \ --hostname gitlab.example.com \ -p 8929:80 -p 2289:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
然后需要相应配置gitlab.rb:
设置external_url:
# 对于HTTP external_url "[***]" 或 # 对于HTTPS(注意https) external_url "[***]"
更多信息参见NGINX文档。
设置gitlab_shell_ssh_port:
gitlab_rails['gitlab_shell_ssh_port'] = 2289
按照上述示例,您可通过Web浏览器访问<hostIP>:8929,并通过端口2289使用SSH推送。
使用不同端口的docker-compose.yml示例可在docker-compose部分找到。
查看容器日志:
docker logs gitlab
进入运行中的容器:
docker exec -it gitlab /bin/bash
在容器内,您可像管理Omnibus安装一样管理GitLab容器。
使用[Docker Compose],您可轻松配置、安装和升级基于Docker的GitLab安装。
[安装][install-compose]Docker Compose
创建docker-compose.yml文件(或[下载示例][down-yml]):
web: image: 'ravermeister/gitlab' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url '[***] # 在此处添加任何其他gitlab.rb配置,每行一个 ports: - '80:80' - '443:443' - '22:22' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab'
确保位于docker-compose.yml所在目录,运行docker-compose up -d启动GitLab
参见预配置Docker容器了解GITLAB_OMNIBUS_CONFIG变量的工作方式。
以下是使用自定义HTTP和SSH端口的docker-compose.yml示例,注意GITLAB_OMNIBUS_CONFIG变量与ports部分的匹配:
web: image: 'ravermeister/gitlab' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url '[***] gitlab_rails['gitlab_shell_ssh_port'] = 2224 ports: - '9090:9090' - '2224:22' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab'
这与使用-p 9090:9090 -p 2224:22效果相同。
如果已使用docker-compose安装GitLab,只需运行docker-compose pull和docker-compose up -d即可下载新版本并升级GitLab实例。
GitLab Docker镜像也可部署到各种容器调度平台。
在树莓派3或其他ARM开发板上运行镜像可能需要一些sysctl值以确保正常运行和良好性能。
只需在/etc/sysctl.conf末尾添加以下内容:
kernel.sem = 250 32000 32 262 kernel.shmall = 1048575 kernel.shmmax = 4294967295 net.core.somaxconn = 1024
可使用nano或vim编辑(例如sudo nano /etc/sysctl.conf)。
完成后,需将这些值加载到系统中,运行cat /etc/sysctl.conf /etc/sysctl.d/*.conf | sudo sysctl -e -p -,主机即可准备运行GitLab docker镜像。
更新Docker镜像时,可能会遇到所有路径显示500页面的问题。如果发生这种情况,尝试运行docker restart gitlab重启容器以解决问题。
从较旧的GitLab Docker镜像更新时,可能会遇到权限问题。这是由于之前镜像中的用户未正确保留导致的。有一个脚本可修复所有文件的权限。
要修复容器,只需执行update-permissions,然后重启容器:
docker exec gitlab update-permissions docker restart gitlab
如果在docker主机上使用文件ACL,docker[^1]组需要对卷拥有完全访问权限才能使GitLab正常工作。
$ getfacl /srv/gitlab # file: /srv/gitlab # owner: XXXX # group: XXXX user::rwx group::rwx group:docker:rwx mask::rwx default:user::rwx default:group::rwx default:group:docker:rwx default:mask::

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429