0%

基于Docker搭建GitLab

安装镜像

Docker 容器数据应该存储于卷中,在这里我们使用最简单的本地命名卷:

  • gitlab-config 存储 GitLab 配置信息
  • gitlab-data 存储数据库
  • gitlab-logs 存储日志
1
2
3
4
5
6
7
8
9
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 13443:443 --publish 13880:80 --publish 13822:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
1
2
--hostname  //虚拟机地址或云服务器地址
--publish // 设置端口 13443:443 13443代表宿主机上的端口 修改端口防止443,80,22端口占用

下载并启动一个GitLab CE容器,并发布访问SSH,HTTP和HTTPS所需的端口。 配置 (etc) 、 日志 (log) 、数据 (data) 三个文件夹,放到容器之外, 便于日后升级,放在 /srv/gitlab/ 目录。 系统重启后,容器将自动“重启”。

查找GitLab镜像

1
docker search gitlab

安装中文镜像

1
2
3
4
5
6
7
8
9
10
11
12
docker run -d \
--hostname gitlab.example.com \
-p 80:80 \
-p 443:443 \
-p 22:22 \
--name gitlab \
--restart unless-stopped \
-v gitlab-config:/etc/gitlab \
-v gitlab-logs:/var/log/gitlab \
-v gitlab-data:/var/opt/gitlab \
--network gitlab-net \
twang2218/gitlab-ce-zh:11.1.4

如果需要进入容器修改配置文件,可以用 docker exec 命令进入容器:

1
2
3
4
5
6
$ docker exec -it gitlab bash
root@09f6e32c528c:/# vi /etc/gitlab/gitlab.rb
root@09f6e32c528c:/# gitlab-ctl reconfigure
Starting Chef Client, version 12.12.15
resolving cookbooks for run list: ["gitlab"]
...

如需停止服务,直接运行 docker stop gitlab

如需卸载服务及相关内容,可以执行:

1
2
3
4
docker stop gitlab
docker rm gitlab
docker network rm gitlab-net
docker volume rm gitlab-config gitlab-datagitlab-logs

防火墙开启端口

1
2
3
4
5
firewall-cmd --permanent --add-port=13880/tcp
firewall-cmd --permanent --add-port=13822/tcp

# 重新加载
firewall-cmd --reload

Docker can’t connect to docker daemon

  1. 创建 docker 组.

    1
    sudo groupadd docker
  2. 将用户添加到 docker 组.

    1
    sudo usermod -aG docker $(whoami)
  3. 注销并重新登录以确保docker以正确的权限运行.

  4. 启动docker.

    1
    sudo service docker start

数据存储在哪里?

Local location Container location Usage
/srv/gitlab/data /var/opt/gitlab 用于存储应用程序数据
/srv/gitlab/logs /var/log/gitlab 用于存储日志
/srv/gitlab/config /etc/gitlab 用于存储GitLab配置文件

您可以微调这些目录以满足您的要求

登陆

打开浏览器,输入本机的ip地址并登陆

1
`http://192.168.138.128:13880/`

默认帐户的用户名是root,第一次访问时,将被重定向到密码重置屏幕,登录后,您可以更改用户名。

常用指令

停止镜像

1
docker stop container

删除镜像

需要停止了,才能删除

1
docker rm container

重新启动镜像

1
docker restart container

启动镜像

1
docker start container

获取容器的日志

docker logs : 获取容器的日志,可以根据日志信息,找到错误信息,解决相关问题

语法

1
docker logs [OPTIONS] CONTAINER

OPTIONS说明:

  • -f : 跟踪日志输出
  • –since :显示某个开始时间的所有日志
  • -t : 显示时间戳
  • –tail :仅列出最新N条容器日志

列出容器

docker ps : 列出容器

语法

1
docker ps [OPTIONS]

OPTIONS说明:

  • -a :显示所有的容器,包括未运行的。
  • -f :根据条件过滤显示的内容。
  • –format :指定返回值的模板文件。
  • -l :显示最近创建的容器。
  • -n :列出最近创建的n个容器。
  • –no-trunc :不截断输出。
  • -q :静默模式,只显示容器编号。
  • -s :显示总的文件大小。

参考

-------------本文结束感谢您的阅读-------------