欢迎光临
我们一直在努力

CentOS/RHEL内网Docker部署全攻略

目录

部署概述

一:环境准备

1.1 系统要求

1.1.1系统更新与基础工具安装

1.2 安装 Docker

1.3 创建部署目录

​编辑

二:服务部署

2.0 创建 Docker 网络

​编辑

2.1 部署 MySQL 8.0.36

2.1.1启动 MySQL并进行验证

​编辑

2.2 部署 PostgreSQL 16.4

2.1.1启动 PostgreSQL

​编辑

2.3 部署 Redis 7.2.5

2.3.1启动 Redis并验证

​编辑

2.4 Nacos 数据库准备

2.4.1下载 Nacos 完整 SQL 脚本

2.4.2检查当前数据库状态

2.4.3重新初始化数据库

2.4.5验证数据库表创建完整

​编辑

2.5 启动 Nacos 容器

2.5.1监控 Nacos 启动过程

2.6防火墙配置,开放必要端口

2.7验证所有服务并查看所有服务状态

2.8获取访问地址

三:管理脚本

3.1 创建统一管理脚本

3.1.1测试管理脚本

四:服务信息汇总

4.1 服务访问信息

4.2 数据持久化目录

4.3 管理命令汇总

五:故障排除

六:后续维护

七、附录

7.1 Nacos 完整表结构清单

7.2 Docker 常用命令速查

7.3 端口汇总


部署概述

  • 本文档记录了在 CentOS/RHEL 系统上使用 Docker 部署内网微服务基础设施的完整过程,

  • 包括:(MySQL 8.0.36 、PostgreSQL 16.4 、Redis 7.2.5 、Nacos 2.4.0(服务注册与配置中心))


一:环境准备

1.1 系统要求

  • 服务
    端口
    说明
    版本
    MySQL 3306 关系型数据库,存储业务数据 8.0.36
    PostgreSQL 5432 备选关系型数据库 16.4
    Redis 6379 高性能缓存数据库 7.2.5
    Nacos 8848/9848/9849 服务发现和配置中心 2.4.0
  • 操作系统:CentOS Stream 9

  • IP: 192.168.11.93/23

  • RHEL 8+

  • Docker:20.10+

  • 内存:32GB+

  • 磁盘:500GB

1.1.1系统更新与基础工具安装

# 查看系统IP(确认当前环境)
ip a
# 输出示例:inet 192.168.11.93/23 brd 192.168.11.255 scope global dynamic ens33

# 更新系统包
yum update -y

# 安装基础工具
yum install -y curl wget vim net-tools tree lsof

# 安装必要依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 安装 Docker

Docker是容器化部署的基础,以下是完整的安装和配置过程(在国内下载Docker镜像可能会很慢,配置镜像加速可以大幅提升下载速度):

# 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加 Docker 官方仓库
yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker 及相关组件
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动 Docker 并设置开机自启
systemctl start docker

# 验证安装
docker –version
# 输出示例:Docker version 29.3.0, build 5927d80
docker compose version
# 输出示例:Docker Compose version v5.1.0

mkdir -p /etc/docker/

cat > /etc/docker/daemon.json <<EOF
{
\”registry-mirrors\”: [\”https://hub.rat.dev/\”,\”https://docker.xuanyuan.me\”, \”https://docker.m.daocloud.io\”,\”https://dockerproxy.com\”],
\”dns\”: [\”114.114.114.114\”,\”8.8.8.8\”],
\”max-concurrent-downloads\”: 30,
\”data-root\”: \”/data/docker\”,
\”insecure-registries\”:[\”docker.oa.com:8080\”]
}
EOF

# 重启 Docker 使配置生效
systemctl stop docker
systemctl daemon-reload
systemctl start docker

1.3 创建部署目录

建立规范的数据目录,便于后续管理和备份:

# 创建主部署目录
mkdir -p /opt/deploy
cd /opt/deploy

# 创建各服务的数据目录
mkdir -p mysql/{data,logs,conf}
mkdir -p postgres/{data,logs,conf}
mkdir -p redis/{data,logs,conf}
mkdir -p nacos/{data,logs,conf}
mkdir -p backups

# 查看目录结构
tree /opt/deploy

二:服务部署

2.0 创建 Docker 网络

创建专用的Docker网络,使容器之间可以通过容器名直接通信,避免使用IP地址:

# 创建容器间通信网络
docker network create app-network
# 输出示例:a7dc544a1e33fe134f17d2b0c6de0c13d374da6f4c8d58159a19b6db7a0ff726

# 验证网络创建
docker network ls | grep app-network
# 输出示例:a7dc544a1e33 app-network bridge local

2.1 部署 MySQL 8.0.36

MySQL作为主要的关系型数据库,用于存储业务数据和Nacos的配置信息:

cd /opt/deploy

cat > docker-compose-mysql.yml << \’EOF\’
version: \’3.8\’
services:
mysql:
image: mysql:8.0.36
container_name: mysql-8.0.36
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: nacos
MYSQL_USER: nacos
MYSQL_PASSWORD: 123456
TZ: Asia/Shanghai
ports:
– \”3306:3306\”
volumes:
– ./mysql/data:/var/lib/mysql
– ./mysql/logs:/var/log/mysql
– ./mysql/conf:/etc/mysql/conf.d
command:
– –default-authentication-plugin=mysql_native_password
– –character-set-server=utf8mb4
– –collation-server=utf8mb4_unicode_ci
networks:
– app-network

networks:
app-network:
external: true
EOF

2.1.1启动 MySQL并进行验证

cd /opt/deploy

# 启动 MySQL 容器
docker compose -f docker-compose-mysql.yml up -d
# 输出示例:
# WARN[0000] /opt/deploy/docker-compose-mysql.yml: the attribute `version` is obsolete
# [+] Running 2/2
# ✔ Image mysql:8.0.36 Pulled
# ✔ Container mysql-8.0.36 Started

# 等待 MySQL 完全启动
sleep 15

————————————————

# 查看容器状态
docker ps | grep mysql
# 输出示例:7dbf07b63ac5 mysql:8.0.36 \”docker-entrypoint.s…\” Up 2 minutes 0.0.0.0:3306->3306/tcp mysql-8.0.36

# 测试连接
docker exec mysql-8.0.36 mysql -uroot -p123456 -e \”SHOW DATABASES;\”
# 输出示例:
# Database
# information_schema
# mysql
# nacos
# performance_schema
# sys

2.2 部署 PostgreSQL 16.4

PostgreSQL作为备选数据库,适用于需要复杂查询和数据完整性的场景:

cat > docker-compose-postgres.yml << \’EOF\’
services:
postgres:
image: postgres:16.4
container_name: postgres-16.4
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: 123456
POSTGRES_DB: postgres
TZ: Asia/Shanghai
ports:
– \”5432:5432\”
volumes:
– ./postgres/data:/var/lib/postgresql/data
– ./postgres/logs:/var/log/postgresql
networks:
– app-network

networks:
app-network:
external: true
EOF

2.1.1启动 PostgreSQL

cd /opt/deploy

# 启动 PostgreSQL 容器
docker compose -f docker-compose-postgres.yml up -d
# 输出示例:
# [+] Running 2/2
# ✔ Image postgres:16.4 Pulled
# ✔ Container postgres-16.4 Started

# 等待启动
sleep 10

2.3 部署 Redis 7.2.5

Redis作为高性能缓存数据库,用于提升系统响应速度:

cat > docker-compose-redis.yml << \’EOF\’
services:
redis:
image: redis:7.2.5
container_name: redis-7.2.5
restart: always
command: redis-server –requirepass 123456 –appendonly yes
ports:
– \”6379:6379\”
volumes:
– ./redis/data:/data
– ./redis/logs:/logs
networks:
– app-network

networks:
app-network:
external: true
EOF

2.3.1启动
赞(0)
未经允许不得转载:171主机测评 » CentOS/RHEL内网Docker部署全攻略
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址