开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[开发教程] 这里是记录Pmine Project容器化的过程,同时分享运维经验

 发表于 2024-9-14 11:43:03|显示全部楼层|阅读模式 IP:湖北省

这里是记录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容器化构建部署

  • To be continued

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'

  • 这里指定了Docker Compose的版本

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:

  • 这里指定了容器的网络
  • gitlab:
    • 这里指定了网络的名称
    • driver: bridge
    • 这里指定了网络的驱动
    • bridge是Docker默认的网络驱动
    • bridge是Docker的网络模式之一,它是Docker的默认网络模式,它会为每个容器分配一个IP地址,同时容器之间可以通过IP地址进行通信
    • 还有其他的网络模式,比如host、none、overlay等
    • host模式是指容器和宿主机共享网络,容器和宿主机使用同一个IP地址,容器和宿主机之间可以通过localhost进行通信
    • none模式是指容器没有网络,容器之间无法通信
    • overlay模式是指容器之间可以通过网络进行通信,容器之间可以通过IP地址进行通信
    • 这里我们使用bridge模式,因为我们的容器是独立的,我们需要为每个容器分配一个IP地址,同时容器之间可以通过IP地址进行通信
  • 这里我们只有一个网络,所以只有一个网络的配置
  • 如果有多个网络,我们可以通过以下命令来创建多个网络,类似于:
    networks:
    gitlab:
    driver: bridge
    fds:
    driver: bridge
    pmine:
    driver: bridge

接下来,我们通过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

……


苦力怕论坛,感谢有您~
 发表于 2024-9-14 12:02:14|显示全部楼层 IP:河北省
呜哇~大佬tql
2#2024-9-14 12:02:14回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 楼主|  发表于 2024-9-14 12:06:05|显示全部楼层 IP:湖北省

谢谢九卷儿!!!!!
3#2024-9-14 12:06:05回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-12-12 04:25

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号-3