GitLab在Linux上的容器化实践
导读:GitLab在Linux上的容器化实践指南 一、前期准备工作 在开始部署前,需完成以下基础环境配置: 安装Docker:通过Linux发行版的包管理器(如Ubuntu的apt、CentOS的yum)或Docker官方脚本安装最新稳定版Do...
GitLab在Linux上的容器化实践指南
一、前期准备工作
在开始部署前,需完成以下基础环境配置:
- 安装Docker:通过Linux发行版的包管理器(如Ubuntu的
apt、CentOS的yum)或Docker官方脚本安装最新稳定版Docker;安装完成后,使用docker --version验证安装是否成功。 - 安装Docker Compose(推荐):Docker Compose可简化多容器应用的管理。通过
curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose下载二进制文件,赋予执行权限(chmod +x /usr/local/bin/docker-compose),并通过docker-compose --version验证安装。 - 准备存储目录:为保证数据持久化,需在宿主机上创建专用目录(如
/srv/gitlab/config、/srv/gitlab/logs、/srv/gitlab/data),分别用于存储GitLab的配置文件、日志和核心数据。
二、容器化部署方式
1. 使用docker run命令快速部署
通过单条命令直接启动GitLab容器,适用于简单测试场景:
docker run -d \
--hostname gitlab.example.com \ # 容器主机名(需与后续配置一致)
-p 443:443 -p 80:80 -p 22:22 \ # 映射HTTPS、HTTP、SSH端口
--name gitlab \ # 容器名称
--restart always \ # 容器退出后自动重启
-v /srv/gitlab/config:/etc/gitlab \ # 挂载配置目录
-v /srv/gitlab/logs:/var/log/gitlab \ # 挂载日志目录
-v /srv/gitlab/data:/var/opt/gitlab \ # 挂载数据目录
gitlab/gitlab-ce:latest # 使用社区版镜像(企业版替换为gitlab-ee)
说明:若宿主机22端口被占用,可将SSH端口映射改为-p 60000:22,后续需通过ssh -p 60000 root@gitlab.example.com访问。
2. 使用docker-compose编排部署
通过docker-compose.yml文件管理配置,更适合生产环境的多容器场景:
- 创建
docker-compose.yml文件:
version: '3.6'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: gitlab.example.com
ports:
- '5480:80' # Web界面端口
- '5443:443' # HTTPS端口
- '5022:22' # SSH端口
volumes:
- './config:/etc/gitlab' # 相对路径挂载(当前目录下的config目录)
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
shm_size: '256m' # 分配共享内存(解决页面加载慢问题)
- 启动容器:在
docker-compose.yml所在目录执行docker-compose up -d,后台启动GitLab容器。
三、初始配置与访问
- 获取初始root密码:容器启动后,执行以下命令查看默认root用户的初始密码:
docker exec -it gitlab cat /etc/gitlab/initial_root_password
- 访问GitLab Web界面:在浏览器中输入
http://< 服务器IP> :5480(若修改了端口映射,则使用对应端口),使用root账号和初始密码登录。 - 配置外部URL:登录后,进入容器修改
gitlab.rb配置文件(vim /etc/gitlab/gitlab.rb),设置external_url为实际访问地址(如http://gitlab.example.com或https://gitlab.example.com);若启用HTTPS,需添加Let’s Encrypt配置:
letsencrypt['enabled'] = true
letsencrypt['contact_emails'] = ['your.email@example.com']
修改完成后,执行gitlab-ctl reconfigure使配置生效,再通过gitlab-ctl restart重启服务。
四、常用管理与维护命令
- 查看容器状态:
docker ps(确认GitLab容器是否运行)。 - 停止/重启容器:
docker stop gitlab、docker restart gitlab。 - 进入容器命令行:
docker exec -it gitlab /bin/bash(用于执行配置修改、备份等操作)。 - 查看容器日志:
docker logs -f gitlab(实时查看GitLab运行日志,便于排查问题)。 - 备份数据:
docker exec -t gitlab gitlab-rake gitlab:backup:create(将备份文件保存到/var/opt/gitlab/backups目录,可通过docker cp拷贝到宿主机)。
五、注意事项
- 数据持久化:必须挂载
config、logs、data目录到宿主机,避免容器删除后数据丢失。 - 端口冲突:若宿主机已有服务占用GitLab所需的端口(如80、443、22),需修改映射端口(如将80改为8080),并同步调整访问地址。
- 安全性:首次登录后务必修改root密码;生产环境中建议启用HTTPS(通过Let’s Encrypt免费证书),并关闭用户注册功能(修改
gitlab.rb中的gitlab_rails['gitlab_signup_enabled'] = false)。 - 性能优化:根据服务器配置调整
shm_size(共享内存大小),避免因内存不足导致页面加载缓慢;企业版GitLab对资源要求更高,建议分配至少4GB内存。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: GitLab在Linux上的容器化实践
本文地址: https://pptw.com/jishu/738006.html
