一、安装Docker
在Ubuntu系统上,我们可以使用apt-get命令安装Docker,具体操作如下:
sudo apt-get update
sudo apt-get install -y docker.io
为了避免每次使用Docker命令都需要sudo,可以将当前用户加入docker组:
sudo usermod -aG docker $USER
再重新登录一次即可。
二、拉取GitLab镜像
执行下面的命令从Docker Hub上拉取GitLab CE镜像:
docker pull gitlab/gitlab-ce:latest
三、创建GitLab容器
为了避免容器内部产生数据被删除,我们需要将GitLab的数据目录映射到宿主机的一个目录中。这里我们将GitLab数据存储在宿主机的/home/gitlab-data目录下。
执行下面的命令创建一个GitLab容器:
docker run -d \
-v /home/gitlab-data/config:/etc/gitlab \
-v /home/gitlab-data/logs:/var/log/gitlab \
-v /home/gitlab-data/data:/var/opt/gitlab \
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab \
--restart always \
gitlab/gitlab-ce:latest
命令说明:
- -d:后台运行容器
- -v:将宿主机目录挂载到容器内部
- -p:端口映射,将容器内部的443、80和22端口映射到宿主机的443、80和22端口上
- --name:指定容器名称为gitlab
- --restart:容器重启策略,这里设置为always
- gitlab/gitlab-ce:latest:指定所使用的GitLab镜像
容器启动后,可以使用命令docker ps查看当前正在运行的容器:
docker ps
如果GitLab容器运行正常,则可以通过访问宿主机的IP地址或者域名:http://your-ip/访问GitLab。
四、使用GitLab
GitLab的管理员账号默认为root,管理员账号的密码可以在容器中找到:
docker logs gitlab | grep 'Password:'
使用root账号登录后,即可创建项目、添加成员等操作。
五、使用Docker Compose
Docker Compose是一个用于定义和运行复杂应用程序的工具。我们可以使用Docker Compose来管理多个容器,比如同时启动GitLab和MySQL容器。
下面是一个使用Docker Compose搭建GitLab的例子:
version: '3'
services:
gitlab:
image: gitlab/gitlab-ce:latest
restart: always
hostname: gitlab.example.com
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com'
ports:
- "80:80"
- "443:443"
- "2222:22"
volumes:
- /srv/gitlab/config:/etc/gitlab
- /srv/gitlab/logs:/var/log/gitlab
- /srv/gitlab/data:/var/opt/gitlab
再执行下面的命令即可启动GitLab容器:
docker-compose up -d
此时,GitLab将会运行在本地的80、443和2222端口上,即可在浏览器中访问。
六、注意事项
在使用Docker搭建GitLab时,有一些需要注意的地方:
- 建议使用官方提供的镜像,保证容器的稳定性和安全性;
- 为了不丢失GitLab中的数据,需要将GitLab的数据目录映射到宿主机的一个目录中;
- 通过环境变量来配置GitLab的一些参数;
- 在使用Docker Compose时,需要配置正确的网络连接,避免多个容器之间无法通信。