Ubuntu上使用Docker部署GitLab的完整流程
一、前期准备
1. 安装Docker
GitLab容器化部署依赖Docker,首先需在Ubuntu上安装Docker:
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装依赖
sudo apt install -y curl gnupg lsb-release
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加Docker APT仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装Docker引擎
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
# 验证Docker安装
sudo docker run hello-world
2. 安装Docker Compose(可选但推荐)
Docker Compose可简化多容器管理,建议安装:
# 下载最新版Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
二、部署GitLab(两种方式)
方式1:使用docker run命令快速部署
# 拉取GitLab社区版镜像(最新版)
docker pull gitlab/gitlab-ce:latest
# 创建数据持久化目录(宿主机)
sudo mkdir -p /srv/gitlab/{config,logs,data}
# 启动GitLab容器
sudo docker run -d \
--hostname yourdomain.com \ # 替换为你的域名或IP
--publish 80:80 \ # Web界面端口
--publish 443:443 \ # HTTPS端口(可选)
--publish 22:22 \ # SSH端口
--name gitlab \ # 容器名称
--restart always \ # 开机自启
--volume /srv/gitlab/config:/etc/gitlab \ # 配置文件挂载
--volume /srv/gitlab/logs:/var/log/gitlab \ # 日志文件挂载
--volume /srv/gitlab/data:/var/opt/gitlab \ # 数据文件挂载
gitlab/gitlab-ce:latest
方式2:使用docker-compose.yml文件管理(推荐)
# 创建项目目录
mkdir -p ~/gitlab && cd ~/gitlab
# 创建docker-compose.yml文件
cat <<EOF > docker-compose.yml
version: '3.6'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
shm_size: '256m' # 共享内存(解决某些环境下的性能问题)
EOF
# 启动GitLab容器
docker-compose up -d
关键说明
- 数据持久化:
--volume(或volumes)参数将宿主机目录挂载到容器内,确保数据不会因容器删除而丢失。 - 端口映射:默认映射80(HTTP)、443(HTTPS)、22(SSH),可根据需求调整(如避免与宿主机已有服务冲突)。
- 容器名称:
--name参数指定容器名称(如gitlab),方便后续管理(如启动、停止、查看日志)。
三、初始配置与访问
1. 获取初始root密码
GitLab容器启动后,首次登录需使用默认root用户的初始密码:
# 进入容器
docker exec -it gitlab /bin/bash
# 查看初始密码(若使用docker-compose,路径为./config/initial_root_password)
cat /etc/gitlab/initial_root_password
# 退出容器
exit
2. 访问GitLab Web界面
- 打开浏览器,输入
http://yourdomain.com(或宿主机IP,如http://192.168.1.100)。 - 首次登录需设置root用户的新密码(密码强度要求较高)。
- 登录后即可创建项目、用户、组等。
3. 配置外部URL(可选)
若需修改GitLab访问地址(如从IP改为域名),可进入容器修改配置文件:
docker exec -it gitlab /bin/bash
# 编辑GitLab配置文件
vim /etc/gitlab/gitlab.rb
# 找到external_url,取消注释并设置为新地址(如external_url 'http://yourdomain.com')
external_url 'http://yourdomain.com'
# 保存退出(vim中按:wq)
# 重新加载配置
gitlab-ctl reconfigure
gitlab-ctl restart
四、常用管理命令
1. 容器管理
# 查看GitLab容器状态
docker ps -a | grep gitlab
# 启动GitLab容器
docker start gitlab
# 停止GitLab容器
docker stop gitlab
# 重启GitLab容器
docker restart gitlab
# 查看容器日志(排查问题)
docker logs -f gitlab
2. GitLab服务管理(容器内)
# 进入GitLab容器
docker exec -it gitlab /bin/bash
# 查看GitLab服务状态
gitlab-ctl status
# 重启GitLab服务
gitlab-ctl restart
# 重新加载配置
gitlab-ctl reconfigure
# 停止GitLab服务
gitlab-ctl stop
五、注意事项
1. 系统资源要求
GitLab对资源要求较高,建议分配至少4GB内存(最低2GB,但可能导致性能问题),2核CPU,50GB以上磁盘空间。
2. 防火墙配置
若使用UFW防火墙,需开放相关端口:
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 22/tcp # SSH
sudo ufw reload
3. 数据备份
定期备份GitLab数据(宿主机挂载目录中的config、logs、data文件夹),建议使用rsync或tar命令归档:
# 示例:备份到/home/user/gitlab_backup目录
mkdir -p /home/user/gitlab_backup
tar -czvf /home/user/gitlab_backup/gitlab_$(date +%F).tar.gz -C /srv/gitlab ./
4. 生产环境优化
- HTTPS配置:获取SSL证书(如Let’s Encrypt),修改
gitlab.rb中的external_url为https://yourdomain.com,并配置SSL证书路径。 - 高可用性:通过Docker Compose部署多个GitLab节点,配合负载均衡器(如Nginx)实现高可用。
- 资源限制:在
docker-compose.yml中添加mem_limit、cpu_shares等参数,限制容器资源使用。
通过以上步骤,即可在Ubuntu上使用Docker快速部署GitLab,并进行基本的管理和维护。如需更高级的配置(如CI/CD、集成LDAP),可参考GitLab官方文档。
以上就是关于“ubuntu上gitlab如何使用Docker”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm