Docker搭建gitlab
一、Gitlab镜像下载:
sudo docker pull gitlab/gitlab-ce:latest
sudo docker images #查看目前已有的镜像
官方安装文档地址:https://docs.gitlab.com/omnibus/docker/
二、docker运行镜像
各项命令以及参数可以参考如下
docker run \ --detach \ --publish 8443:443 \ # 映射https端口, 不过本文中没有用到 --publish 8090:80 \ # 映射宿主机8090端口到容器中80端口 --publish 8022:22 \ # 映射22端口, 可不配 --name gitlab \ --restart always \ --hostname 10.12.2.22 \ # 局域网宿主机的ip, 如果是公网主机可以写域名 -v /home/software/gitlab/etc:/etc/gitlab \ # 挂载gitlab的配置文件 -v /home/software/gitlab/logs:/var/log/gitlab \ # 挂载gitlab的日志文件 -v /home/software/gitlab/data:/var/opt/gitlab \ # 挂载gitlab的数据 -v /etc/localtime:/etc/localtime:ro \ # 保持宿主机和容器时间同步 --privileged=true beginor/gitlab-ce # 在容器中能以root身份执行操作
实际可以使用:
sudo docker run --detach --publish 8443:443 --publish 8080:80 --publish 8022:22 --name gitlab --restart unless-stopped --volume /home/s/gitlab/etc:/etc/gitlab --volume /home/s/gitlab/log:/var/log/gitlab --volume /home/s/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
前提是对于挂载映射的目录需要提前在宿主机上建立好对应的文件夹。
启动之后,访问宿主机浏览器,输入宿主机ip:8080端口,如果能够看到gitlab的登录页面,则说明启动成功。
由于整个启动过程比较慢,需要2分钟左右,因此,我们可以通过:
sudo docker ps
查看镜像运行情况,如果
[s@localhost ~]$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5e50a6f29091 gitlab/gitlab-ce "/assets/wrapper" 41 seconds ago Up 40 seconds (health: starting) 0.0.0.0:8022->22/tcp, 0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp gitlab [s@localhost ~]$ sudo docker ps [sudo] s 的密码: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5e50a6f29091 gitlab/gitlab-ce "/assets/wrapper" 6 minutes ago Up 6 minutes (healthy) 0.0.0.0:8022->22/tcp, 0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp gitlab
STATUS这一栏,healthy表示已经成功启动。浏览器访问如下,默认的登录名为root,登录成功之后需要重新设置密码。
三、导出与导入镜像
由于需要在隔离环境搭建gitlab,所以我们需要先在能够联网的机器上导出镜像,然后将镜像导入到目标机器的环境。
导出镜像:
sudo docker save -o /home/s/gitlab-image.tar 8671e37cb6f2
参考docker的save命令:
将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档 runoob@runoob:~$ docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3 runoob@runoob:~$ ll my_ubuntu_v3.tar -rw------- 1 runoob runoob 142102016 Jul 11 01:37 my_ubuntu_v3.ta
导入镜像:
docker load<gitlab-image.tar
然后重新运行容器
docker 存出镜像需要注意的一个问题
正确:docker save <repository>:<tag> -o <repository>.tar
错误:docker save <IMAGE ID> -o <repository>.tar(会导致载入镜像后名字标签都为<none>)
如果docker载入新的镜像后repository和tag名称都为none
那么通过tag的方法增加名字标签
docker tag <IMAGE ID> <repository>:<tag>
参考链接:
https://www.jianshu.com/p/ce6d0bd7113a