Centos7-Docker 安装 Gitlab详细篇

Posted reasonzzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7-Docker 安装 Gitlab详细篇相关的知识,希望对你有一定的参考价值。

官方教程 
https://docs.gitlab.com/omnibus/docker/

 

建议虚拟机内存2G以上

1.下载镜像文件

docker pull beginor/gitlab-ce:11.0.1-ce.0

 


注意:一定要配置阿里云的加速镜像
 

  1. 创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
mkdir -p /mnt/gitlab/etc
mkdir -p /mnt/gitlab/log
mkdir -p /mnt/gitlab/data

 

运行GitLab容器 

docker run     --detach     --publish 8443:443     --publish 8090:80     --name gitlab     --restart unless-stopped     -v /mnt/gitlab/etc:/etc/gitlab     -v /mnt/gitlab/log:/var/log/gitlab     -v /mnt/gitlab/data:/var/opt/gitlab     beginor/gitlab-ce:11.0.1-ce.0 

停止docker容器,并且删除

docker stop 容器id
docker rm 容器id
systemctl stop firewalld

 将挂载文件同步到容器外面

[[email protected] ~]# docker run >     --detach nor/gitlab-ce:11.0.1-ce.0
>     --publish 8443:443 >     --publish 8090:80 >     --name gitlab >     --restart unless-stopped >     -v /mnt/gitlab/etc:/etc/gitlab >     -v /mnt/gitlab/log:/var/log/gitlab >     -v /mnt/gitlab/data:/var/opt/gitlab >     beginor/gitlab-ce:11.0.1-ce.0

7079a63817279290899e21046f75d64a1e636087afbd510545212a242bef62b4
docker: Error response from daemon: driver failed programming external connectivity on endpoint gitlab 
(0e14a81954fa738bcf42b5f67bd3c2ad4f11413f9cd28ec58efb98a9a8414ae4):
(iptables failed: iptables
--wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8443 -j DNAT --to-destination
172.17.0.3:443 ! -i docker0: iptables: No chain/target/match by that name.

直接运行会报一个错误,报错我们先把容器停掉,然后删除

[[email protected] ~]# docker stop 7079a63817279290899e21046f75d64a1e636087afbd510545212a242bef62b4
7079a63817279290899e21046f75d64a1e636087afbd510545212a242bef62b4
[[email protected] ~]# docker rm 7079a63817279290899e21046f75d64a1e636087afbd510545212a242bef62b4
7079a63817279290899e21046f75d64a1e636087afbd510545212a242bef62b4

这样就已经删除成功了,然后我们再来看一看之前报错的问题,谷歌一下

将这段拿出来搜索一下,全部搜索肯定不行

Error response from daemon: 
driver failed programming external connectivity on endpoint gitlab
No chain/target/match by that name.

技术图片

最总找到了这篇文章

https://blog.csdn.net/qq_42114918/article/details/81840335

[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl restart docker.service

 

我猜测应该daemon的问题,我们再来试一下

[[email protected] ~]# docker run >     --detach >     --publish 8443:443 >     --publish 8090:80 >     --name gitlab >     --restart unless-stopped >     -v /mnt/gitlab/etc:/etc/gitlab >     -v /mnt/gitlab/log:/var/log/gitlab >     -v /mnt/gitlab/data:/var/opt/gitlab >     beginor/gitlab-ce:11.0.1-ce.0
3f3d49ac7888aaf51d51761c27f92e4bf1b465f76b1a58f3428637b9c3ffd9b7
[[email protected] ~]#

 

这次没有报错了,直接就成功了。

这个时候我们进到目录再看一下挂载文件是否同步到外面来了

[[email protected] ~]# cd /mnt/gitlab/etc/
[[email protected] etc]# ls
gitlab.rb            ssh_host_ecdsa_key      ssh_host_ed25519_key      ssh_host_rsa_key      trusted-certs
gitlab-secrets.json  ssh_host_ecdsa_key.pub  ssh_host_ed25519_key.pub  ssh_host_rsa_key.pub

修改/mnt/gitlab/etc/gitlab.rb

把external_url改成部署机器的域名或者IP地址

 

vi /mnt/gitlab/etc/gitlab.rb

 external_url ‘http://192.168.56.3‘

技术图片

 

按 i 进行编辑,编辑好了按Esc,:wq 进行保存

修改/mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

vi /mnt/gitlab/data/gitlab-rails/etc/gitlab.yml

找到关键字 * ## Web server settings *

按斜杠进行搜索

/Web server settings

技术图片

 

这个时候我们把容器停止再删除,然后重启服务

[[email protected] ~]# docker stop 3f3d49ac7888aaf51d51761c27f92e4bf1b465f76b1a58f3428637b9c3ffd9b7
3f3d49ac7888aaf51d51761c27f92e4bf1b465f76b1a58f3428637b9c3ffd9b7
[[email protected] ~]# docker rm 3f3d49ac7888aaf51d51761c27f92e4bf1b465f76b1a58f3428637b9c3ffd9b7
3f3d49ac7888aaf51d51761c27f92e4bf1b465f76b1a58f3428637b9c3ffd9b7
[[email protected] ~]# systemctl restart docker
[[email protected] ~]#

再来重新创建容器

[[email protected] ~]# docker run >     --detach >     --publish 8443:443 >     --publish 8090:80 >     --name gitlab >     --restart unless-stopped >     -v /mnt/gitlab/etc:/etc/gitlab >     -v /mnt/gitlab/log:/var/log/gitlab >     -v /mnt/gitlab/data:/var/opt/gitlab >     beginor/gitlab-ce:11.0.1-ce.0
d07898b3749d72870eed634a8ce9d371c981a5b962596fff76d59fc3e8c164d6
[[email protected] ~]#

 

这个时候我们来查一下,看一下容器有没有分配ip地址,有的话表示创建容器成功了。

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED              STATUS              PORTS                                                 NAMES
d07898b3749d        beginor/gitlab-ce:11.0.1-ce.0   "/assets/wrapper"        About a minute ago   Up Less than a second (health: starting)   22/tcp, 0.0.0.0:8090->80/tcp, 0.0.0.0:8443->443/tcp   gitlab
f264e5f1be41        sonatype/nexus3                 "sh -c $SONATYPE_DI…"   2 hours ago          Up 2 hours              0.0.0.0:8081->8081/tcp                                nexus
[[email protected] ~]# docker inspect d07898b3749d

 

技术图片

 

访问一下ip地址

[[email protected] ~]# curl 172.17.0.3:80
curl: (7) Failed connect to 172.17.0.3:80; Connection refused

拒绝连接,说明启动没有那么快,还需要一些时间

关闭防火墙,查看下状态,这个时候防火墙已经关闭了。

[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# firewall-cmd --state
not running
[[email protected] ~]#

 

报502是正常的,不用担心

 

以上是关于Centos7-Docker 安装 Gitlab详细篇的主要内容,如果未能解决你的问题,请参考以下文章

centos7-docker-网络配置

Windows下使用 npm 命令安装 Appium(详)

PHP 以编译方式安装,编译参数详解析!

EasyBCD在windows7基础上安装Ubuntu 14.04双系统详

Elasticsearch超详学习

Android中jetpack讲解(详)--课外拓展知识讲解