服务器部署教程(Docker + PostgreSQL + Redis )
环境:CentOS 7 x2 / 两台服务器均有 /data 大分区(94G)
一、服务器信息
| 服务器 | IP | 系统 | 用途 |
|---|
| ad-db | 10.60.9.x | CentOS 7 | 数据库服务器(PostgreSQL) |
| ad-app | 10.60.9.y | CentOS 7 | 应用服务器(Django + Redis) |
系统账号
| 服务器 | 用户名 | 备注 |
|---|
| ad-db | bsadmin | sudo 免密权限 |
| ad-app | bsadmin | sudo 免密权限 |
二、前置检查(两台服务器都要执行)
1. 查看系统版本
cat /etc/os-release
2. 查看资源状态
free-h# 内存df-h# 磁盘 nproc # CPU核心数
3. 确认 sudo 权限
sudo-l
三、修复 CentOS 7 yum 源(两台服务器都要执行)
CentOS 7 已于 2024 年 6 月停止维护,默认源已失效,需切换至阿里云归档源。
# 备份旧源sudomkdir-p /etc/yum.repos.d/backup sudomv /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/backup/ # 换成阿里云归档源sudocurl-o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 清除缓存并重建sudo yum clean all sudo yum makecache
四、安装 Docker(两台服务器都要执行)
1. 安装依赖
sudo yum install-y yum-utils device-mapper-persistent-data lvm2
2. 添加 Docker 阿里云源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装 Docker
sudo yum install-y docker-ce docker-ce-cli containerd.io --skip-broken
⚠️ 若下载中途报网络超时,重新执行上面这条命令即可。
4. 启动并设置开机自启
sudo systemctl start dockersudo systemctl enabledocker
5. 验证安装
sudodocker version
五、配置 Docker(两台服务器都要执行)
将 Docker 数据目录指向 /data/docker,避免占用根分区空间。
sudomkdir-p /etc/docker sudotee /etc/docker/daemon.json <<'EOF' { "registry-mirrors": [ "https://mirror.ccs.tencentyun.com", "https://registry.docker-cn.com", "https://dockerhub.icu", "https://docker.rainbond.cc" ], "data-root": "/data/docker" } EOFsudo systemctl restart dockersudodocker info |grep-A5"Registry Mirrors"
六、部署 PostgreSQL 18(ad-db 服务器)
1. 创建数据目录
sudomkdir-p /data/postgresql/data sudomkdir-p /data/postgresql/logs # postgres 容器内用户 UID 为 999sudochown-R999:999 /data/postgresql
2. 拉取镜像
⚠️ Docker Hub 在国内访问受限,使用第三方镜像源拉取:
sudodocker pull docker.1panel.live/library/postgres:18 # 打标签重命名为标准名称sudodocker tag docker.1panel.live/library/postgres:18 postgres:18
3. 启动容器
sudodocker run -d\--name postgresql \--restart always \-ePOSTGRES_PASSWORD=wWw.71AD.COM \-ePOSTGRES_USER=postgres \-ePGDATA=/var/lib/postgresql/data \-v /data/postgresql/data:/var/lib/postgresql/data \-v /data/postgresql/logs:/var/log/postgresql \-p5432:5432 \ postgres:18
4. 验证运行状态
sudodockerps|grep postgresql sudodocker logs postgresql
日志中看到 database system is ready to accept connections 即表示启动成功。
5. 初始化数据库
sudodockerexec-it postgresql psql -U postgres
-- 创建用户CREATEUSER django_user WITH PASSWORD 'gjgg71AD63638369';-- 创建数据库CREATEDATABASE django_db OWNER django_user;-- 授权GRANTALLPRIVILEGESONDATABASE django_db TO django_user;-- 确认结果 \l \du \q
七、部署 Redis 7(ad-app 服务器)
Redis 选择原生安装,CentOS 7 默认源版本过旧,使用 Remi 源安装 Redis 7。
1. 安装 Remi 源
sudo yum install-y epel-release sudo yum install-y https://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum install-y yum-utils
2. 安装 Redis 7
sudo yum install-y redis --enablerepo=remi
3. 启动并设置开机自启
sudo systemctl start redis sudo systemctl enable redis sudo systemctl status redis
4. 设置 Redis 密码
sudonano /etc/redis.conf
找到 # requirepass foobared 这行,改为:
requirepass 密码
保存退出后重启:
sudo systemctl restart redis
5. 验证密码
# 不带密码(应被拒绝) redis-cli ping# 带密码(应返回 PONG) redis-cli -a 密码 ping
八、账号密码汇总
PostgreSQL(ad-db)
| 项目 | 值 |
|---|
| 端口 | 5432 |
| 超级管理员 | postgres |
| 超级管理员密码 | ********* |
| Django 用户 | django_user |
| Django 用户密码 | ********* |
| Django 数据库 | django_db |
Redis(ad-app)
十、常用维护命令
PostgreSQL
# 查看容器状态sudodockerps|grep postgresql # 查看日志sudodocker logs -f postgresql # 进入数据库sudodockerexec-it postgresql psql -U postgres # 停止 / 启动 / 重启sudodocker stop postgresql sudodocker start postgresql sudodocker restart postgresql # 备份数据库sudodockerexec postgresql pg_dump -U postgres django_db > /data/postgresql/backup_$(date +%Y%m%d).sql # 恢复数据库sudodockerexec-i postgresql psql -U postgres django_db < /data/postgresql/backup_20240101.sql
Redis
# 查看状态sudo systemctl status redis # 停止 / 启动 / 重启sudo systemctl stop redis sudo systemctl start redis sudo systemctl restart redis # 进入 Redis 命令行 redis-cli -a 密码 # 查看所有 key redis-cli -a 密码 keys '*'# 清空缓存 redis-cli -a 密码 flushall
架构总览
┌─────────────────────────────┐ ┌──────────────────────────────┐ │ ad-app 10.60.9.x │ │ ad-db 10.60.9.y │ │ │ 5432 │ │ │ Django(Docker) │────────▶│ Docker │ │ Redis 7(原生) │ │ └── PostgreSQL 18.3 │ │ Celery │ │ /data/postgresql/data │ └─────────────────────────────┘ └──────────────────────────────┘
文档生成时间:2026-03-11
适用环境:CentOS 7 + Docker 26.1.4 + PostgreSQL 18.3 + Redis 7