使用Docker安装GitLab教程

使用Docker安装GitLab可以通过以下步骤完成。整个过程分为几个阶段:安装Docker、拉取GitLab镜像、运行容器、配置和访问。


1. 安装Docker

如果尚未安装Docker,请先根据系统环境安装:

  • Ubuntu/Debian:
    1
    2
    3
    sudo apt update
    sudo apt install docker.io
    sudo systemctl enable --now docker
  • CentOS:
    1
    2
    3
    4
    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io
    sudo systemctl enable --now docker
  • 通用脚本安装(任何Linux发行版):
    1
    2
    curl -fsSL https://get.docker.com | sh
    sudo systemctl enable --now docker

2. 拉取GitLab镜像

从Docker Hub拉取官方GitLab社区版镜像:

1
docker pull gitlab/gitlab-ce:latest

3. 运行GitLab容器

使用以下命令启动GitLab容器。注意替换以下参数:

  • --hostname: 你的GitLab域名或IP(本地测试可用服务器IP或localhost)。
  • --publish: 端口映射(格式:宿主机端口:容器端口)。
  • --volume: 数据持久化目录(确保目录存在)。
1
2
3
4
5
6
7
8
9
10
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 80:80 --publish 443:443 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:latest

参数说明

  • --hostname: GitLab访问地址(如无域名,用服务器IP)。
  • --publish: 映射HTTP(80)、HTTPS(443)、SSH(22)端口。若宿主机端口冲突,可修改左侧端口(如8080:80)。
  • --volume: 持久化配置、日志和数据。
  • --shm-size: 解决Sidekiq内存不足问题。

4. 初始配置与访问

  1. 等待初始化完成(首次启动需1-5分钟):

    1
    docker logs -f gitlab  # 查看实时日志,直到出现“GitLab setup finished”
  2. 访问GitLab

    • 浏览器打开 http://<宿主机IP>(若映射端口非80,需加端口号,如http://IP:8080)。
    • 首次登录用户名:root,密码需通过以下命令获取:
      1
      sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
  3. 配置SSL(可选)

    • 修改 /srv/gitlab/config/gitlab.rb,启用SSL并配置证书路径。
    • 重新配置GitLab:
      1
      docker exec -it gitlab gitlab-ctl reconfigure

5. 后续管理

  • 停止/启动容器

    1
    2
    docker stop gitlab
    docker start gitlab
  • 升级GitLab

    1. 拉取新镜像:
      1
      docker pull gitlab/gitlab-ce:latest
    2. 停止并删除旧容器(数据卷会保留):
      1
      2
      docker stop gitlab
      docker rm gitlab
    3. 重新运行步骤3的命令启动新容器。
  • 备份与恢复

    • 备份
      1
      docker exec -t gitlab gitlab-backup create
      备份文件保存在 /srv/gitlab/data/backups
    • 恢复
      1
      docker exec -it gitlab gitlab-backup restore BACKUP=备份文件名

常见问题

  1. 端口冲突:修改--publish参数中的宿主机端口(如8080:80)。
  2. 内存不足:建议宿主机至少4GB内存,否则可能启动失败。
  3. 无法访问:检查防火墙或安全组是否放行端口(80/443/22)。

通过以上步骤,你可以快速在Docker中部署GitLab。根据实际需求调整域名、端口和数据存储路径即可。