这里是记录Pmine Project容器化的过程,同时分享运维经验
我们将会涉及Docker构建镜像、使用Docker Compose来管理容器、同时在后续的文章中会涉及到Kubernetes的使用
Pmine目前已经将私有的Git仓库通过GitLab的Docker容器化部署
- 但目前,我们的GitLab容器是单独部署的,我们需要将GitLab容器与其他容器进行整合,以便于后续的项目管理
- 至少实现CI/CD的功能,方便后续的项目管理和部署,自动化,提高效率
- 这将涉及到GitLab Runner的部署,以及GitLab Runner与GitLab的整合
- 同时进阶的话,我们还会涉及到Kubernetes的使用,将GitLab Runner部署到Kubernetes集群中
FDS的私有邮件系统通过Docker容器化部署
FDS的公共单点登录系统通过Docker容器化构建部署
- 但目前仍在使用手动部署,我们需要通过GitLab Runner来实现自动化部署
- 后续我们会将GitLab Runner部署到Kubernetes集群中
Pmine的前端项目通过Docker容器化构建部署
Docker的安装和使用
Docker的安装
众所周知,Docker的安装非常简单,只需要一行命令即可
sudo apt-get install docker.io
或者
sudo yum install docker.io
或者
sudo snap install docker
安装完成后,我们需要将Docker服务启动
sudo systemctl start docker
同时,我们需要将Docker服务设置为开机自启动
sudo systemctl enable docker
接下来,我们可以通过以下命令来验证Docker是否安装成功
docker --version
Docker的使用
Docker的使用非常简单,我们可以通过以下命令来查看Docker的帮助文档
docker --help
当然,信息很多,我们可以快速熟悉一下几个常用的命令
查看所有的容器
docker ps -a
查看所有的镜像
docker images
拉取镜像
docker pull [image_name]
运行容器
docker run -d [image_name]
进入容器
docker exec -it [container_id] /bin/bash
删除容器
docker rm [container_id]
删除镜像
docker rmi [image_id]
接下来,我们进阶一下,通过Docker Compose来管理容器
但我们除了Docker Compose,还需要熟悉以下Docker Network的使用
查看所有的网络
docker network ls
创建网络
docker network create [network_name]
删除网络
docker network rm [network_name]
运行容器,并指定网络
docker run -d --network [network_name] [image_name]
Docker Compose的安装和使用
默认情况下,Docker Compose在Docker安装后就已经安装好了
docker-compose --version
如果没有安装,我们可以通过以下命令来安装
sudo apt-get install docker-compose
或者
sudo yum install docker-compose
或者
sudo snap install docker-compose
Docker Compose的使用
Docker Compose的使用非常简单,我们可以通过以下命令来查看Docker Compose的帮助文档
docker-compose --help
当然,信息很多,我们可以快速熟悉一下几个常用的命令
构建镜像
docker-compose build
启动容器
docker-compose up -d
停止容器
docker-compose down
查看容器
docker-compose ps
查看日志
docker-compose logs
接下来,我们将会通过Docker Compose来管理容器
我们将会展示如何通过Docker Compose来管理GitLab容器,同时进一步熟悉Docker Compose的使用,特别是Docker Compose的配置文件——docker-compose.yml
Docker Compose的配置文件——docker-compose.yml
Docker Compose的配置文件是一个YAML文件,我们可以通过以下命令来创建一个docker-compose.yml文件
touch docker-compose.yml
或者
vim docker-compose.yml
或者
nano docker-compose.yml
Docker Compose的配置文件主要包括以下几个部分
version
version: '3'
services
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: 'gitlab'
ports:
- '80:80'
- '443:443'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
networks
networks:
gitlab:
driver: bridge
接下来,我们来解释一下这个配置文件
version: '3'
services:
- 这里指定了我们要管理的容器
- gitlab:
- 这里指定了容器的名称
- image: 'gitlab/gitlab-ce:latest'
- 这里指定了容器的镜像
- container_name: 'gitlab'
- 这里指定了容器的名称
- ports:
- '80:80'
- '443:443'
- 这里指定了容器的端口映射
- volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
- 这里指定了容器的数据卷
其中,image的值是我们即将要拉取的镜像,container_name的值是我们即将要创建的容器的名称,ports的值是我们即将要映射的端口,volumes的值是我们即将要挂载的数据卷
networks:
接下来,我们通过Docker Compose来管理GitLab容器
首先,我们需要拉取GitLab的镜像(可选,因为Docker Compose会自动拉取镜像)
docker pull gitlab/gitlab-ce:latest
然后,我们需要创建一个目录,用来存放GitLab的数据
mkdir -p /srv/gitlab/config
mkdir -p /srv/gitlab/logs
mkdir -p /srv/gitlab/data
接下来,我们需要创建一个docker-compose.yml文件
touch docker-compose.yml
然后,我们需要编辑docker-compose.yml文件
vim docker-compose.yml
然后,我们需要将之前的配置文件复制到docker-compose.yml文件中
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: 'gitlab'
ports:
- '2323:80'
- '3223:443'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
networks:
gitlab:
driver: bridge
接下来,我们来启动GitLab容器
构建镜像(可选,因为Docker Compose会自动完成)
docker-compose build
启动容器
docker-compose up -d
查看容器
docker-compose ps
查看日志
docker-compose logs
接下来,我们来验证一下GitLab容器是否启动成功
首先,我们需要访问GitLab的Web界面
http://your_ip_address:2323
然后,我们需要查看GitLab的文件,来查看GitLab的初始root密码
cat /srv/gitlab/config/initial_root_password
最后,我们需要登录GitLab的Web界面,使用root用户和初始root密码登录
http://your_ip_address:2323
接下来,我们将会继续通过Nginx来配置GitLab的反向代理
但这并不是本篇文章的重点,我们将会在后续的文章中详细介绍Nginx的使用
在这里,我们暂且按下不表
To be continued
……