centos7下使用docker安装gitlab

环境背景:git

Docker化已经成为一种热门,记录一下使用docker引擎安装gitlab的过程。redis

测试环境:sql

系统 软件 依赖
CentOS 7.4 GitLab(latest) docker-ce 18

 

 

 

安装过程:docker

 1. 安装docker引擎并启动shell

[root@server-10 ~]# yum install docker-ce -y    //须要去官方下载docker.repo文件 [root@server-10 ~]# systemctl enable docker [root@server-10 ~]# systemctl start docker

 

2. 获取gitlab镜像包json

[root@server-10 ~]# docker pull gitlab/gitlab-ce    //里面集成的东西较多,镜像可能比较大

查看下载好的镜像浏览器

[root@server-10 logs]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE gitlab/gitlab-ce                          latest              991cd608c116        2 weeks ago         1.59GB

 

3. 在本机准备gitlab工做目录app

[root@server-10 ~]# mkdir -p /data/docker/gitlab/{config,data,logs}

以上在本机创建的3个目录是为了gitlab容器经过挂载本机目录启动后能够映射配置文件,数据文件,日志文件到本机,而后后续就能够直接在本机查看和编辑了,不用再进容器操做。less

 

4. 启动gitlab关键步骤ssh

[root@server-10 ~]# docker run -d \  --name gitlab \  --hostname gitlab \  --restart always \  -p 4443:443 -p 8888:80 -p 2222:22 \        //根据须要增减映射相应端口  -v /data/docker/gitlab/config:/etc/gitlab \  -v /data/docker/gitlab/data:/var/opt/gitlab \  -v /data/docker/gitlab/logs:/var/log/gitlab \  gitlab/gitlab-ce:latest

 说明:

-d:后台运行

--name:设置容器的名字;

--hostname:设置容器内主机的名字;

--restart:设置容器的重启策略,可选项: no | on-failure[:max-retries] | always | unless-stopped ;

-p(小写字母):映射端口,形式:[hostPort:]containerPort,若是不加主机端口,那么会在主机上生成随机端口;

-v(小写字母):挂载目录,形式:[HOST-DIR:]CONTAINER-DIR;

 

4. 检查启动信息

[root@server-10 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3c8cdd184582 gitlab/gitlab-ce:latest   "/assets/wrapper"        About a minute ago   Up About a minute (health: starting)   0.0.0.0:2222->22/tcp, 0.0.0.0:8888->80/tcp, 0.0.0.0:4443->443/tcp   gitlab

启动须要一些时间,过一段时间后再次查看

[root@server-10 logs]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3c8cdd184582 gitlab/gitlab-ce:latest   "/assets/wrapper"        3 minutes ago       Up 3 minutes (healthy)   0.0.0.0:2222->22/tcp, 0.0.0.0:8888->80/tcp, 0.0.0.0:4443->443/tcp   gitlab

再查看本机端口状态

[root@server-10 ~]# netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0      0 0.0.0.0:22              0.0.0.0:* LISTEN  tcp6 0      0 :::2222                 :::* LISTEN  tcp6 0      0 :::22                   :::* LISTEN tcp6 0      0 :::8888                 :::* LISTEN  tcp6 0      0 :::4443                 :::* LISTEN 

查看本机为gitlab容器新建的工做目录内容

[root@server-10 ~]# tree -L 2 /data/docker/gitlab/
/data/docker/gitlab/ ├── config │ ├── gitlab.rb        // 主要配置文件
│   ├── gitlab-secrets.json │ ├── ssh_host_ecdsa_key │ ├── ssh_host_ecdsa_key.pub │ ├── ssh_host_ed25519_key │ ├── ssh_host_ed25519_key.pub │ ├── ssh_host_rsa_key │ ├── ssh_host_rsa_key.pub │ └── trusted-certs ├── data │ ├── backups │ ├── git-data │ ├── gitlab-ci │ ├── gitlab-rails │ ├── gitlab-shell │ ├── logrotate │ ├── postgresql │ ├── redis │ └── trusted-certs-directory-hash └── logs ├── gitlab-rails ├── gitlab-shell ├── logrotate ├── postgresql ├── reconfigure ├── redis ├── sidekiq ├── sshd └── unicorn
View Code

以上能够看出里面集成的东西仍是挺多的。

 

5. 登陆gitlab

在浏览器输入安装gitlab容器的主机地址,形式 IP:PORT

首次登陆设置新密码,而后进入下一页登陆界面,用户名:root,密码:<上一页设定的密码 >

后面就能够使用了。

 

6. 排错

若是初始登陆浏览器出现502那么请检查是否端口冲突,修改文件gitlab.rb相关端口项 unicorn['port'] =PORT

也能够根据logs目录中的信息跟踪查询,若是出现GitLab external URL must include a schema and FQDN,请尝试修改gitlab.rb文件中的配置项格式 external_url = 'gitlab.xxx.com' 或者 external_url  'http://138.138.82.10'。

 

7. 更新GitLab

若是采用上述安装方法,更新变的很简单:中止gitlab容器,删除中止的gitlab容器,获取新镜像,再次使用原来的启动命令启动出一个新gitlab容器便可。不用担忧数据丢失,只要挂载目录与以前一致,就会自动读取主机原来的目录下的数据。

 

附. 经常使用gitlab命令

gitlab-ctl reconfigure  // 从新应用gitlab的配置
gitlab-ctl restart    // 重启gitlab服务
gitlab-ctl status      // 查看gitlab运行状态
gitlab-ctl stop      // 中止gitlab服务
gitlab-ctl tail     // 查看gitlab运行日志

 

结束.

相关文章
相关标签/搜索