docker部署gitlab实践

 更新时间:2026年03月18日 09:15:49   作者:凭X而动  
这篇文章主要介绍了docker部署gitlab实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、安装docker

docker安装参考如下:

Docker、Docker Compose部署实践过程

二、docker部署gitlab

1.下载gitlab镜像

# 拉取最新版
docker pull gitlab/gitlab-ce  或者 docker pull gitlab/gitlab-ce:latest
# 拉取指定版本:
docker pull gitlab/gitlab-ce:18.5

如果是离线环境,先从在线环境下载gitlab镜像

# 在线环境下打包镜像
docker save -o gitlab.tar gitlab/gitlab-ce:latest
# 把镜像上传到离线环境,导入镜像
docker load -i gitlab.tar

2.启动gitlab

# --privileged=true 以特权模式运行容器,相当于赋予容器类似root的特权权限
docker run -d \
--restart always --name gitlab \
-p 8443:443 -p 8090:80 -p 8022:22 \
-v /var/gitlab/etc:/etc/gitlab \
-v /var/gitlab/log:/var/log/gitlab \
-v /var/gitlab/opt:/var/opt/gitlab \
--privileged=true \
gitlab/gitlab-ce:latest

3.修改配置

注意:

1.external_url配置了端口,并且端口不是80,就必须配置nginx[‘listen_port’] = 80,否则会访问不到

原因:external_url 带端口后,GitLab 会让 Nginx 监听该端口(8090),但 Docker 容器内对应的端口是 80 导致匹配上不

2.external_url不配置端口,可以访问,但存在问题:GitLab 生成的链接有问题

项目地址等就会缺少端口导致复制的地址访问不了

  • 例:Clone 地址:http://192.168.1.210/root/java-gitlab.git --缺少端口
  • 正确地址:http://192.168.1.210:8090/root/java-gitlab.git

# 进入容器
docker exec -it gitlab /bin/bash
# 1.编辑gitlab.rb文件
vi /etc/gitlab/gitlab.rb
# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口,如果配置了端口就必须配置nginx['listen_port'] = 80
external_url 'http://192.168.1.201:8090'
# 容器内监听端口80(映射到宿主机 8090)
nginx['listen_port'] = 80
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.1.201'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 8022
# 时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 开启备份功能
gitlab_rails['manage_backup_path'] = true
# 备份路径
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
# 备份文件的权限
gitlab_rails['backup_archive_permissions'] = 0644
# 保存备份 60 天
gitlab_rails['backup_keep_time'] = 5184000


# 让配置生效(容器中执行)
gitlab-ctl reconfigure

查看配置ip和端口是否和启动时一致,如果不一致需要修改

# 编辑gitlab.yml文件(gitlab重启后需要重新配置)
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
# 将文件中的port改成8090,和启动时候映射的端口一致
gitlab:
    host: 192.168.1.201
    port: 8090 
    https: false
或者
vi /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
# 将文件中的port改成8090,和启动时候映射的端口一致
gitlab:
    # 虚拟机地址
    host: 192.168.1.201
    port: 8090 
    https: false

# 让配置生效(容器中执行)
gitlab-ctl restart

4.默认密码以及重置密码

默认用户名:root

启动密码位置:cat /var/gitlab/etc/initial_root_password 或者容器内部(docker exec -it gitlab /bin/bash)cat /etc/gitlab/initial_root_password

# 重置密码
# 进入容器内部
docker exec -it gitlab /bin/bash
# 进入控制台,需要等一会,-e production:强制指定Rails控制台运行在production环境
gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
# 会输出=> #<User id:1 @root>
user = User.where(id:1).first
# 修改密码
user.password='Welcome@2025!'
# 保存(长度至少8个字符等校验会报错:Validation failed: Password must not contain commonly used combinations of words and letters, Password is too short (minimum is 8 characters) (ActiveRecord::RecordInvalid))
user.save!
# 测试密码是否正确,正确会返回=>true
user.valid_password?('Welcome@2025!')
# 退出
exit

5.访问

浏览器访问:ip:port

192.168.1.201:8090

5.1 关闭注册功能

登录页面存在注册功能

关闭注册功能:

点击Admin–Settings–General–Sign-up restrictions–取消掉Sign-up enabled选项前面的勾

最后点击下面的Save changes

5.2 设置中文页面

点击头像–Preferences

Preferences–Localization–Language–选择Chinese, Simplified-简体中文

最后点击下面的Save changes保存

退出之后登录就是中文页面

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 删除docker里建立容器的操作方法

    删除docker里建立容器的操作方法

    在本篇文章里小编给大家分享了一篇关于删除docker里建立容器的操作方法,需要的朋友们可以学习下。
    2020-03-03
  • 如何使用Docker部署最新版JupyterHub

    如何使用Docker部署最新版JupyterHub

    本文介绍了如何使用Docker部署最新版JupyterHub,包括拉取镜像、启动容器、生成配置文件、安装依赖、创建用户、更改权限、更新配置文件以及访问验证等步骤,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • 使用docker compose一键部署WordPress博客的方法

    使用docker compose一键部署WordPress博客的方法

    这篇文章主要介绍了docker-compose一键部署WordPress博客,本文分步骤给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • docker中容器运行时如何将目录和宿主机进行挂载

    docker中容器运行时如何将目录和宿主机进行挂载

    对于一个已经运行的容器,如果后续需要新挂载一个目录怎么办?下面这篇文章主要给大家介绍了关于docker中容器运行时如何将目录和宿主机进行挂载的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • Linux Docker安装wordpress的方法详解教程

    Linux Docker安装wordpress的方法详解教程

    这篇文章主要介绍了Linux Docker安装wordpress的方法详解教程的相关资料,需要的朋友可以参考下
    2016-10-10
  • Docker开启TLS和CA认证的方法步骤

    Docker开启TLS和CA认证的方法步骤

    本文主要介绍了Docker开启TLS和CA认证的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Centos7使用docker部署生产环境中间件的详细步骤

    Centos7使用docker部署生产环境中间件的详细步骤

    这篇文章主要为大家详细介绍了腾讯云Centos7使用docker部署生产环境中间件的详细步骤,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-07-07
  • Docke中安装redis的方法

    Docke中安装redis的方法

    这篇文章主要介绍了Docke中安装redis的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Docker容器实战之镜像仓库

    Docker容器实战之镜像仓库

    这篇文章主要介绍了Docker容器实战之镜像仓库,文章通过Docker Hub为例,讲解关于镜像仓库的使用,需要的小伙伴可以参考一下
    2022-05-05
  • 使用docker部署hadoop集群的详细教程

    使用docker部署hadoop集群的详细教程

    这篇文章主要介绍了使用docker部署hadoop集群的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值需要的朋友可以参考下
    2020-09-09

最新评论