Centos7安装docker+redis+pgsql

服务器部署教程(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. 查看系统版本

bash 复制代码
cat /etc/os-release

2. 查看资源状态

bash 复制代码
free -h    # 内存
df -h      # 磁盘
nproc      # CPU核心数

3. 确认 sudo 权限

bash 复制代码
sudo -l

三、修复 CentOS 7 yum 源(两台服务器都要执行)

CentOS 7 已于 2024 年 6 月停止维护,默认源已失效,需切换至阿里云归档源。

bash 复制代码
# 备份旧源
sudo mkdir -p /etc/yum.repos.d/backup
sudo mv /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/backup/

# 换成阿里云归档源
sudo curl -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. 安装依赖

bash 复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2. 添加 Docker 阿里云源

bash 复制代码
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3. 安装 Docker

bash 复制代码
sudo yum install -y docker-ce docker-ce-cli containerd.io --skip-broken

⚠️ 若下载中途报网络超时,重新执行上面这条命令即可。

4. 启动并设置开机自启

bash 复制代码
sudo systemctl start docker
sudo systemctl enable docker

5. 验证安装

bash 复制代码
sudo docker version

五、配置 Docker(两台服务器都要执行)

将 Docker 数据目录指向 /data/docker,避免占用根分区空间。

bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /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"
}
EOF

sudo systemctl restart docker
sudo docker info | grep -A 5 "Registry Mirrors"

六、部署 PostgreSQL 18(ad-db 服务器)

1. 创建数据目录

bash 复制代码
sudo mkdir -p /data/postgresql/data
sudo mkdir -p /data/postgresql/logs

# postgres 容器内用户 UID 为 999
sudo chown -R 999:999 /data/postgresql

2. 拉取镜像

⚠️ Docker Hub 在国内访问受限,使用第三方镜像源拉取:

bash 复制代码
sudo docker pull docker.1panel.live/library/postgres:18

# 打标签重命名为标准名称
sudo docker tag docker.1panel.live/library/postgres:18 postgres:18

3. 启动容器

bash 复制代码
sudo docker run -d \
  --name postgresql \
  --restart always \
  -e POSTGRES_PASSWORD=wWw.71AD.COM \
  -e POSTGRES_USER=postgres \
  -e PGDATA=/var/lib/postgresql/data \
  -v /data/postgresql/data:/var/lib/postgresql/data \
  -v /data/postgresql/logs:/var/log/postgresql \
  -p 5432:5432 \
  postgres:18

4. 验证运行状态

bash 复制代码
sudo docker ps | grep postgresql
sudo docker logs postgresql

日志中看到 database system is ready to accept connections 即表示启动成功。

5. 初始化数据库

bash 复制代码
sudo docker exec -it postgresql psql -U postgres
sql 复制代码
-- 创建用户
CREATE USER django_user WITH PASSWORD 'gjgg71AD63638369';

-- 创建数据库
CREATE DATABASE django_db OWNER django_user;

-- 授权
GRANT ALL PRIVILEGES ON DATABASE django_db TO django_user;

-- 确认结果
\l
\du
\q

七、部署 Redis 7(ad-app 服务器)

Redis 选择原生安装,CentOS 7 默认源版本过旧,使用 Remi 源安装 Redis 7。

1. 安装 Remi 源

bash 复制代码
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

bash 复制代码
sudo yum install -y redis --enablerepo=remi

3. 启动并设置开机自启

bash 复制代码
sudo systemctl start redis
sudo systemctl enable redis
sudo systemctl status redis

4. 设置 Redis 密码

bash 复制代码
sudo nano /etc/redis.conf

找到 # requirepass foobared 这行,改为:

复制代码
requirepass bitshareGjgg

保存退出后重启:

bash 复制代码
sudo systemctl restart redis

5. 验证密码

bash 复制代码
# 不带密码(应被拒绝)
redis-cli ping

# 带密码(应返回 PONG)
redis-cli -a bitshareGjgg ping

八、账号密码汇总

PostgreSQL(ad-db)

项目
端口 5432
超级管理员 postgres
超级管理员密码 *********
Django 用户 django_user
Django 用户密码 *********
Django 数据库 django_db

Redis(ad-app)

项目
端口 6379
密码 *********

十、常用维护命令

PostgreSQL

bash 复制代码
# 查看容器状态
sudo docker ps | grep postgresql

# 查看日志
sudo docker logs -f postgresql

# 进入数据库
sudo docker exec -it postgresql psql -U postgres

# 停止 / 启动 / 重启
sudo docker stop postgresql
sudo docker start postgresql
sudo docker restart postgresql

# 备份数据库
sudo docker exec postgresql pg_dump -U postgres django_db > /data/postgresql/backup_$(date +%Y%m%d).sql

# 恢复数据库
sudo docker exec -i postgresql psql -U postgres django_db < /data/postgresql/backup_20240101.sql

Redis

bash 复制代码
# 查看状态
sudo systemctl status redis

# 停止 / 启动 / 重启
sudo systemctl stop redis
sudo systemctl start redis
sudo systemctl restart redis

# 进入 Redis 命令行
redis-cli -a bitshareGjgg

# 查看所有 key
redis-cli -a bitshareGjgg keys '*'

# 清空缓存
redis-cli -a bitshareGjgg 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

相关推荐
w200512244 小时前
K8S控制器管理
linux·云原生·容器·kubernetes
XiYang-DING4 小时前
地图城市缓存优化:ApplicationReadyEvent + Caffeine + Redis + Redisson 分布式锁
redis·分布式·缓存
深念Y5 小时前
Nuxt 项目 Docker 构建:从 pnpm+node 迁移到全 bun
java·前端·docker
小张同学a.5 小时前
Docker 容器实战 2—— docker 仓库
linux·运维·服务器·docker·容器
爱和冰阔落6 小时前
【Linux】多线程打印为什么会乱?pthread 创建、等待、退出、取消与分离全实战
linux·运维·c++·redis
一只小bit8 小时前
Redis哨兵机制、主从复制与集群搭建与维护
数据库·redis·bootstrap
随便做点啥9 小时前
32卡-64G-910B4-16后端-(Qwen3.8-27B-W8A8)集群部署报告
运维·服务器·经验分享·docker·vllm
CJY62115 小时前
k8spod管理
云原生·容器·kubernetes
智购科技无人售货机厂家15 小时前
2026自动售货机制冷系统维护指南:从散热器清洁到压缩机换油的工程实践~YH
运维·redis·物联网·缓存·架构
Orange_sparkle17 小时前
从 Docker 到 Doris:建立后端基础设施全景图
运维·docker·ai·容器·claude code