Docker搭建Gitlab


CentOS使用docker&&搭建本地Gitlab

安装Docker

卸载旧版本(如果安装过旧版本的话)

yum remove docker  docker-common docker-selinux docker-engine

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

安装docker

#sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
#version_string是版本
#sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
sudo yum install docker-ce-17.12.0.ce
#启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
docker version
#通过运行hello-world 映像来验证是否正确安装了Docker
sudo docker run hello-world

搭建gitlab仓库

设置国内的阿里镜像加速
https://promotion.aliyun.com/ntms/act/kubernetes.html

  • 点击镜像搜索
  • 左边镜像容器服务
  • 镜像工具
  • 镜像加速器
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
     "registry-mirrors": ["https://03vqehjx.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    #一行一行输入
  • 配置转发
    vim /etc/sysctl.conf
    #配置转发
    net.ipv4.ip_forward=1
    #重启服务,让配置生效
    systemctl restart network
    #查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功	
    sysctl net.ipv4.ip_forward
  • 拉取gitlab镜像
    docker pull gitlab/gitlab-ce
  • 启动gitlab
    sudo docker run --detach --hostname gitlab.example.com --publish 10443:443 --publish 1080:1080 --publish 1022:22 --name gitlab --restart always --volume /usr/local/docker/gitlab/config:/etc/gitlab --volume /usr/local/docker/gitlab/logs:/var/log/gitlab --volume /usr/local/docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
    第二次:
    docker run -d  -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
    #这里放上移除命令
    docker ps -a  查看所有容器
    docker rm e3274a72e8d6
-hostname gitlab.example.com \ # 设置主机名或域名
-publish 10443:443 --publish 1080:1080 --publish 1022:22 \ #本地端口的映射
-name gitlab \ # gitlab-ce 的镜像运行成功的容器命名为gitlab
-restart always \ # 设置重启方式,always 代表一直开启,即开机自启
-volume 分别将 gitlab 的配置文件、日志文件、数据文件目录映射到 /usr/local/docker/gitlab的相应目录中
  • 查看所有容器

    docker ps -a
  • 开启端口

    firewall-cmd --list-all
    # 开启1080端口
    firewall-cmd --zone=public --add-port=1080/tcp --permanent 
    # 重启防火墙才能生效
    systemctl restart firewalld
  • 网址ip:1080

  • root默认密码在文件夹中:

    /usr/local/docker/gitlab/config/initial_root_password
    /home/gitlab/config

    进入后修改密码:
    menu->admin->users->eidt->password->save changes

  • 项目,clone的时候发现地址http://gitlab.example.com/root/test.git

  • 找到配置文件地址

    cd /usr/local/docker/gitlab/config
  • 找到gitlab.rb vim gitlab.rb

  • 搜索这行# external_url ‘GENERATED_EXTERNAL_URL’

  • 取消注释然后改成自己IP

  • external_url ‘http://192.168.2.2:1080'

  • 使配置生效

  • docker exec gitlab gitlab-ctl reconfigure

  • 或重启docker

  • systemctl restart docker

  • 重启gitlab

  • docker restart gitlab

gitlab操作

  • 登录创建用户,项目
  • 进入git 设置ssh
    ssh-keygen -t rsa -C 'xxx@xxx.com'
    然后进入gitlab,找到sshkeys,添加进去
  • 克隆项目
    创建文件夹,
    $ git config --global user.name "你的名字"
    $ git config --global user.email "你的邮箱"
    $ git clone 项目地址
    找到项目文件,放到新克隆的文件夹里面
    git add .
    git commit -m "message"
    git push origin main
    至此,文件上传到gitlab

参考:https://www.jianshu.com/p/3b28f3416dda


  目录