Docker 部署 GitLab

一、下载镜像

bash 复制代码
docker pull gitlab/gitlab-ce

二、运行容器

bash 复制代码
docker run -d --name gitlab-20080 \n
-p 20443:443 -p 20080:80 -p 20022:22 \n
-v /wwwroot/opt/docker/gitlab-20080/etc:/etc/gitlab \n
-v /wwwroot/opt/docker/gitlab-20080/log:/var/log/gitlab \n
-v /wwwroot/opt/gitlab-20080/gitlab/data:/var/opt/gitlab \n
--privileged=true gitlab/gitlab-ce

这里稍微解释下命令:

-d #后台运行,全称:detach

-p 20443:443 #将容器内部端口向外映射

-p 20080:80 #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口

-p 20022:22 #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口

--name gitlab-20080 #设置容器名称为gitlab-20080

-v /wwwroot/opt/docker/gitlab-20080/etc:/etc/gitlab #将容器/etc/gitlab目录挂载到宿主机/wwwroot/opt/docker/gitlab-20080/etc目录下,若宿主机内此目录不存在将会自动创建

-v /wwwroot/opt/docker/gitlab-20080/log:/var/log/gitlab #与上面一样

-v /wwwroot/opt/docker/gitlab-20080/data:/var/opt/gitlab #与上面一样

--privileged=true #让容器获取宿主机root权限

gitlab/gitlab-ce #镜像的名称,这里也可以写镜像ID

查看容器运行

bash 复制代码
docker ps

至此,docker 容器启动成功。

三、GitLab配置

进入容器

bash 复制代码
docker exec -it gitlab-20080 bash

记录root初始密码

bash 复制代码
# 记录初始密码
cat /etc/gitlab/initial_root_password

修改gitlab.rb文件

bash 复制代码
# 详见文档 https://docs.gitlab.com/omnibus/settings/nginx.html#using-a-non-bundled-web-server
vi /etc/gitlab/gitlab.rb
bash 复制代码
# 服务地址,可以是域名 如果默认http不用80端口,在ip后加上端口即可
external_url 'http://192.168.1.111:20080'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'http://192.168.1.111'
# 此端口是run时22端口映射的20022端口
gitlab_rails['gitlab_shell_ssh_port'] = 20022

刷新配置

bash 复制代码
gitlab-ctl reconfigure

配置gitlab.yml文件

bash 复制代码
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
bash 复制代码
gitlab:
    # 修改host 与上面.rb文件修改的一致,修改port 为8090
    host: 192.168.1.111
    port: 20080
    https: false

重启服务

bash 复制代码
gitlab-ctl restart

本地测试服务

等个两分钟(看机器配置,配置低的启动慢),执行如下命令

bash 复制代码
curl http://127.0.0.1:20080/

出现如下结果,则代表服务启动完成。

浏览器测试服务

url : http://ip:端口/

修改Root密码

如果忘记root密码时可以修改

bash 复制代码
# 进入容器内部
docker exec -it gitlab /bin/bash

# 进入控制台
gitlab-rails console -e production

# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为lqz123456
user.password='lqz123456'
# 保存
user.save!
# 退出
exit

四、常用命令

bash 复制代码
# 容器外停止
docker stop gitlab-20080  
# 容器外重启
docker restart gitlab-20080
# 进入容器命令行
docker exec -it gitlab-20080 bash
# 容器日志
docker logs -f gitlab-20080
# 容器中应用配置,让修改后的配置生效
gitlab-ctl reconfigure
# 容器中重启服务
gitlab-ctl restart
# 查看gitlab运行状态
gitlab-ctl status
#停止gitlab服务
gitlab-ctl stop
# 查看gitlab运行日志
gitlab-ctl tail
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki
相关推荐
阿里云大数据AI技术19 小时前
阿里云 EMR AI 助手正式发布:从问答工具到全栈智能运维助手
运维·人工智能
辉的技术笔记21 小时前
Dify 自部署为什么跑不动?6 层瓶颈诊断法教你定位
docker
SkyWalking中文站2 天前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
程序员老赵2 天前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理
程序员老赵2 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
火车叼位2 天前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
小猿姐2 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
SkyWalking中文站3 天前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维
SkyWalking中文站4 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ4 天前
Kubeneters HA Cluster部署
运维