gitlab在ubuntu上如何使用Docker
导读:在Ubuntu上使用Docker部署GitLab的完整步骤 1. 准备工作 系统要求:Ubuntu Server 22.04/24.04 LTS(64位),建议配置4核CPU、8GB以上内存(避免因资源不足导致部署失败); 安装Docke...
在Ubuntu上使用Docker部署GitLab的完整步骤
1. 准备工作
- 系统要求:Ubuntu Server 22.04/24.04 LTS(64位),建议配置4核CPU、8GB以上内存(避免因资源不足导致部署失败);
- 安装Docker:若未安装,执行以下命令快速部署:
sudo apt update & & sudo apt install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 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 sudo apt update & & sudo apt install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker # 开机自启 - 安装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
2. 部署GitLab容器
方式一:使用Docker命令直接运行(适合快速测试)
# 创建数据目录(用于持久化GitLab配置、日志、数据)
sudo mkdir -p /srv/gitlab/{
config,logs,data}
sudo chmod -R 755 /srv/gitlab # 确保目录可读写
# 拉取GitLab社区版镜像(最新版)
docker pull gitlab/gitlab-ce:latest
# 启动GitLab容器
docker run -d \
--hostname your_server_ip_or_domain \ # 替换为服务器IP或域名(如192.168.1.100)
--name gitlab \
--restart always \ # 开机自启
--publish 8080:80 \ # Web界面端口(可自定义,如8929)
--publish 8443:443 \ # HTTPS端口(可选)
--publish 2222:22 \ # SSH端口(避免与宿主机SSH冲突)
--volume /srv/gitlab/config:/etc/gitlab \ # 配置文件挂载
--volume /srv/gitlab/logs:/var/log/gitlab \ # 日志文件挂载
--volume /srv/gitlab/data:/var/opt/gitlab \ # 数据文件挂载
gitlab/gitlab-ce:latest
方式二:使用Docker Compose(适合生产环境,便于管理)
- 创建
docker-compose.yml文件:sudo mkdir -p /srv/gitlab-compose cd /srv/gitlab-compose sudo vim docker-compose.yml - 粘贴以下内容(修改
hostname为服务器IP或域名):version: '3.8' services: gitlab: image: gitlab/gitlab-ce:latest restart: always hostname: your_server_ip_or_domain # 如192.168.1.100 ports: - "8080:80" - "8443:443" - "2222:22" volumes: - gitlab_config:/etc/gitlab - gitlab_logs:/var/log/gitlab - gitlab_data:/var/opt/gitlab - /etc/localtime:/etc/localtime:ro # 时钟同步 - /etc/timezone:/etc/timezone:ro # 时区同步 environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://your_server_ip_or_domain:8080' # 与ports中的HTTP端口一致 gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 与ports中的SSH端口一致 volumes: gitlab_config: gitlab_logs: gitlab_data: - 启动容器:
sudo docker-compose up -d
3. 初始配置与访问
-
获取root初始密码: 容器启动后,执行以下命令查看临时密码(仅首次登录有效):
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password输出示例:
Password: xxxxxxxx(记下此密码)。 -
访问GitLab Web界面:
- 打开浏览器,输入
http://your_server_ip_or_domain:8080(若使用HTTPS,替换为https://和对应端口); - 使用root账号登录,首次登录需修改密码(建议使用强密码,包含字母、数字、符号)。
- 打开浏览器,输入
-
配置SSH访问(可选):
- 若修改了SSH端口(如2222),需在GitLab项目页面获取SSH地址(格式:
git@your_server_ip_or_domain:project_name.git); - 本地机器添加SSH密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" cat ~/.ssh/id_rsa.pub # 复制公钥内容 - 进入GitLab容器,添加密钥到用户账户:
docker exec -it gitlab bash gitlab-rails console user = User.find_by(username: 'root') user.add_ssh_key("复制的公钥内容") exit
- 若修改了SSH端口(如2222),需在GitLab项目页面获取SSH地址(格式:
4. 常见问题解决
- 无法访问Web界面:
- 检查防火墙是否放行端口(如
ufw allow 8080/tcp); - 确认容器是否运行(
docker ps),若未运行,查看日志排查错误(docker logs gitlab)。
- 检查防火墙是否放行端口(如
- SSH连接失败:
- 确保
gitlab_rails['gitlab_shell_ssh_port']与ports中的SSH端口一致; - 检查宿主机SSH端口是否被占用(
sudo netstat -tulnp | grep 22),若冲突,修改ports中的SSH端口。
- 确保
- 容器频繁退出:
- 查看容器日志(
docker logs -f gitlab),常见原因包括磁盘空间不足、内存不足(需扩容宿主机资源)。
- 查看容器日志(
注意事项
- 数据持久化:通过
volumes挂载的/srv/gitlab目录需长期保留,避免容器删除后数据丢失; - 性能优化:若使用SSD,可在
docker-compose.yml中添加devices: ['/dev/sda'](需根据实际情况调整); - 备份:定期备份
/srv/gitlab目录(包含配置、日志、数据),可使用tar命令压缩归档。
通过以上步骤,即可在Ubuntu上使用Docker快速部署GitLab,并实现数据持久化与便捷管理。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: gitlab在ubuntu上如何使用Docker
本文地址: https://pptw.com/jishu/740701.html
