1.系统准备
服务器操作系统 ubuntu 24.04 mini安装
1.1 更新系统
apt update && sudo apt upgrade -y
1.2 安装必要工具
apt install -y curl wget nano
- 安装Docker和Docker Compose
2.1 安装Docker
curl -fsSL https://get.docker.com | sudo sh
执行失败,反复多次,无果。

尝试直接安装docker-ce及相关组件
apt install -y docker-ce docker-ce-cli containerd.io
仍报错

手动下载安装包,一共6个deb文件。
下载地址https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/amd64/
containerd.io_1.7.25-1_amd64.deb
docker-buildx-plugin_0.21.1-1~ubuntu.24.04~noble_amd64.deb
docker-ce-cli_28.0.1-1~ubuntu.24.04~noble_amd64.deb
docker-ce-rootless-extras_28.0.1-1~ubuntu.24.04~noble_amd64.deb
docker-ce_28.0.1-1~ubuntu.24.04~noble_amd64.deb
docker-compose-plugin_2.33.1-1~ubuntu.24.04~noble_amd64.deb
将下载的包文件上传到服务器,执行本地安装
dpkg -i ./*.deb
usermod -aG docker $USER
newgrp docker # 或重新登录终端使权限生效
- 配置GitLab持久化存储
3.1 创建数据目录
mkdir -p ~/gitlab/{config,logs,data}
- 编写Docker Compose文件
4.1 创建 docker-compose.yml
nano ~/gitlab/docker-compose.yml
4.2 输入以下内容
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: 'gitlab.yourdomain.com' # 改为你的域名或IP
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.yourdomain.com' # 外部访问地址
gitlab_rails['time_zone'] = 'Asia/Shanghai' # 时区设置
邮箱配置(可选)
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
ports:
-
"80:80"
-
"443:443"
-
"22:22"
volumes:
-
./config:/etc/gitlab
-
./logs:/var/log/gitlab
-
./data:/var/opt/gitlab
shm_size: '256m' # 共享内存大小
- 启动GitLab容器
cd ~/gitlab
docker compose up -d

22端口冲突了,修改docker-compose.yml,将"22:22"改为"2222:22"
再次运行
docker compose up -d
成功
docker logs -f gitlab # 监控启动日志
- 防火墙配置(如启用UFW)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 2222/tcp
sudo ufw reload
- 访问GitLab
打开浏览器访问 http://your-server-ip
首次登录用户 root,密码存储在:/etc/gitlab/config/initial_root_password,24小时后将被清理,所以要立即修改密码。
进入gitlab后提示:"Check your sign-up restrictions",点击"Deactivate",禁止其他人注册账号
8.HTTPS配置
将SSL证书放入 ~/gitlab/config/ssl
修改 external_url 为 https://gitlab.yourdomain.com
在 GITLAB_OMNIBUS_CONFIG 添加:
nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
- 常用命令
启动服务 docker compose up -d
停止服务 docker compose down
更新GitLab docker compose pull && docker compose up -d
备份数据 docker exec -t gitlab gitlab-backup create
- 故障排查
502错误:通常因资源不足,建议分配至少4GB内存。
启动缓慢:检查宿主机磁盘IO性能。
附:备份与恢复
备份
docker exec -t gitlab gitlab-backup create
恢复
docker exec -t gitlab gitlab-backup restore BACKUP=备份文件名