Docker创建GitLab,实现Http和Ssh pull和push

Docker创建GitLab

前置条件

  1. 有一台服务器(虚拟机也可以)
  2. docker基本操作(不会也可以)

1.创建存放数据目录文件夹

mkdir -p /usr/data/docker/gitlab

创建文件夹

2.搜索gitlab镜像

docker search gitlab-ce

Docker创建GitLab,实现Http和Ssh pull和push_第1张图片

3.启动镜像并且端口映射以及文件目录挂载

Docker创建GitLab,实现Http和Ssh pull和push_第2张图片

docker run -d  \
-p 8443:443  -p 48080:80 -p 8022:22 --name=gitlab --restart always \
-v /usr/data/docker/gitlab/config:/etc/gitlab  \
-v /usr/data/docker/gitlab/logs:/var/log/gitlab  \
-v /usr/data/docker/gitlab/data:/var/opt/gitlab  \
gitlab/gitlab-ce

其中 443映射到宿主机8443,80可视化页面端口映射到48080,22 ssh链接端口映射到8022上面,没有下载镜像,启动时候将会自动下载
Docker创建GitLab,实现Http和Ssh pull和push_第3张图片

4.查看容器运行状态

Docker创建GitLab,实现Http和Ssh pull和push_第4张图片
一直重启多半是内存不够,gitlab官网建议不低于2G,其他情况,百度多查查

5.浏览器访问

Docker创建GitLab,实现Http和Ssh pull和push_第5张图片
因为将容器的80端口映到了 48080,所以ip+48080访问,记得防火墙关掉,或者把这些端口都放开,如果服务器是阿里云或者其他的需要在安全策略组那里把端口放出来

Docker创建GitLab,实现Http和Ssh pull和push_第6张图片
Docker创建GitLab,实现Http和Ssh pull和push_第7张图片

6.输入新密码,然后新建一个项目

Docker创建GitLab,实现Http和Ssh pull和push_第8张图片

7.添加ssh公钥

Docker创建GitLab,实现Http和Ssh pull和push_第9张图片

8.出现问题

Docker创建GitLab,实现Http和Ssh pull和push_第10张图片
新建项目后我们发现,ReadMe.md一直加载中,点进去的话url前缀不是我们的ip,是一串随机码

Docker创建GitLab,实现Http和Ssh pull和push_第11张图片
我们将随机码换成我们的ip+端口就可以了,所以问题就定为到了
Docker创建GitLab,实现Http和Ssh pull和push_第12张图片

9.修改GitLab配置

(1).进入容器内部Docker创建GitLab,实现Http和Ssh pull和push_第13张图片

docker exec -it gitlab /bin/bash

(2).编辑配置文件(gitlab.rb),末尾新增 两行

vim /etc/gitlab/gitlab.rb

编辑

gitlab_rails['gitlab_shell_ssh_port'] = 8022
external_url 'http://39.98.194.220'

Docker创建GitLab,实现Http和Ssh pull和push_第14张图片

其中 变动的是 8022 ssh的端口 ,url换成自己的ip

(3).修改第二个配置文件(gitlab.yml)

vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

Docker创建GitLab,实现Http和Ssh pull和push_第15张图片
进行修改
Docker创建GitLab,实现Http和Ssh pull和push_第16张图片
Docker创建GitLab,实现Http和Ssh pull和push_第17张图片
(4).重启,必须在docker容器内部重启,退出容器,重启无效

cd /bin/
gitlab-ctl restart

10.查看效果

Docker创建GitLab,实现Http和Ssh pull和push_第18张图片

11.Http效果

Docker创建GitLab,实现Http和Ssh pull和push_第19张图片

12.ssh方式

Docker创建GitLab,实现Http和Ssh pull和push_第20张图片

结语

  1. 启动docker容器时候,一直重启,把文件挂载去掉,具体原因没有深究,自己玩的可以不在意,如果公司搭建的话,还是最好找找原因,本人第一次搭建时候可以正常文件挂载,后来测试时候有点问题
  2. 有问题多百度
  3. 本人QQ:872019874
  4. 记录文件链接: docker-gitlab.txt. 提取码:9j67

你可能感兴趣的:(Linux)