
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命令:
bashdocker 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 \ ulm0/gitlab
然后需要相应配置gitlab.rb:
设置external_url:
sh# 对于HTTP external_url "http://gitlab.example.com:8929" 或 # 对于HTTPS(注意https) external_url "https://gitlab.example.com:8929"
有关更多信息,请参阅NGINX文档。
设置gitlab_shell_ssh_port:
rbgitlab_rails['gitlab_shell_ssh_port'] = 2289
按照上述示例,您将能够通过Web浏览器在<hostIP>:8929访问GitLab,并通过端口2289使用SSH推送。
使用不同端口的docker-compose.yml示例可在docker-compose部分找到。
读取容器日志:
bashdocker logs gitlab
进入运行中的容器:
bashdocker exec -it gitlab /bin/bash
在容器内,您可以像管理Omnibus安装一样管理GitLab容器。
使用Docker Compose,您可以轻松配置、安装和升级基于Docker的GitLab安装。
安装Docker Compose
创建docker-compose.yml文件(或下载示例):
yamlweb: image: 'ulm0/gitlab' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.example.com' # 在此处添加任何其他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变量的工作方式。
以下是另一个docker-compose.yml示例,GitLab在自定义HTTP和SSH端口上运行。注意GITLAB_OMNIBUS_CONFIG变量如何与ports部分匹配:
yamlweb: image: 'ulm0/gitlab' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.example.com:9090' 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的末尾添加以下内容:
shkernel.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,然后重启容器:
bashdocker exec gitlab update-permissions docker restart gitlab
[docker-
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务