1、部署docker:
apt install docker.io
docker -v #查看docker版本,一般都是最新的。
2、查看docker版本
root@kaili:~# docker -v
Docker version 18.06.1-ce, build e68fc7a
ce代表社区版,EE为企业版
3、利用docker部署gitlab
创建容器外挂目录
gitlab/gitlab-ce容器需要三个目录,分别存放应用数据、日志和配置文件
我们创建三个目录分别存放这些数据,便于GitLab的维护和迁移。即时是GitLab被我们玩坏了,只要这三个文件还存在,我们就可以很简单的重建
sudo mkdir -p /gitlab/data
sudo mkdir -p /gitlab/logs
sudo mkdir -p /gitlab/config

  1. 在docker内部署运行gitlab:
    docker run --detach --hostname 192.168.0.18 --publish 8000:80 --name gitlab --restart always --volume /gitlab/config:/etc/gitlab --volume /gitlab/logs:/var/log/gitlab --volume /gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

网上有指定映射https 443以及ssh的端口,具体参考:
https://blog.csdn.net/tlojy/article/details/83785271

  1. gitlab的使用,可以参考:https://blog.51cto.com/caiyuanji/2114796
    在gitlab页面创建的用户需在本地也创建同样的用户,并登录到gitlab的页面创建项目,项目所属的组应是共同的组,有权限登录的如开发人员push代码和pull代码的权限,在本地切换用户然后创建秘钥(已有的秘钥直接使用即可);
    创建秘钥:
    ssh-keygen -t rsa -C [email protected]
    一路回车,默认保存到.ssh/里
    id_rsa为私钥,在Jenkins的系统设置ssh配置和gitlab的凭据里都要放公钥;
    id_rsa.pub为公钥,在gitlab的setting里>>SSH KEYS里设置公钥,一个公钥只能存放在一个用户里,不然会报错。

  2. 问题及解决:
    docker构建gitlab镜像的时候指定了端口映射 -p 8022:22 (容器的8022映射到外部的22ssh端口),如果用22:22会报错,不知官网说这样可以是怎么可以的。
    如果指定了端口映射,就要修改gitlab配置文件里ssh的默认端口
    如果出现页面502错误,排除权限,及端口占用问题,还需修改容器映射时候的端口,如我在构建时使用的8000端口,前提是这些端口都没被占用。