Docker Compose安装部署PostgreSQL数据库的实现步骤
以下是一个完整的 PostgreSQL Docker Compose 部署教程,包括配置和部署详细步骤。本文将指导您如何在 Linux 服务器上使用 Docker Compose 来部署 PostgreSQL,并将数据持久化到指定路径。
1. 环境准备
确保您的系统上已经安装了以下软件:
- Docker:用于容器化应用程序。参考 Docker 官方文档 进行安装。
- Docker Compose:用于定义和运行多容器 Docker 应用程序。参考 Docker Compose 官方文档 进行安装。
验证安装是否成功:
docker --version docker-compose --version
2. 创建所需的目录
为了确保数据持久化存储,先创建工作目录和持久化数据目录。
执行以下命令:
# 创建工作目录 mkdir -p /opt/postgresql # 创建持久化目录 mkdir -p /opt/docker-data/postgresql && chmod 777 /opt/docker-data/postgresql
说明:
/opt/postgresql
是用于存放项目文件的工作目录。/opt/docker-data/postgresql
是持久化 PostgreSQL 数据的目录,设置权限为777
确保容器可以读写。
3. 创建 docker-compose.yml 文件
进入工作目录 /opt/postgresql
,然后创建 docker-compose.yml
文件:
cd /opt/postgresql touch docker-compose.yml
编辑 docker-compose.yml
文件,内容如下:
version: '3.8' services: postgres: image: postgres:15 # 使用 PostgreSQL 15 镜像 container_name: postgres_db # 容器名称 environment: POSTGRES_USER: root # 设置用户名为 'root' POSTGRES_PASSWORD: 123456 # 设置密码为 '123456' POSTGRES_DB: demo # 设置数据库名为 'demo' ports: - "5433:5432" # 将容器的 5432 端口映射到主机的 5433 端口 volumes: - /opt/docker-data/postgresql:/var/lib/postgresql/data # 数据映射到主机指定路径 volumes: postgres_data:
文件解释:
- services: 定义了 PostgreSQL 服务。
- image: 使用官方 PostgreSQL 15 镜像。
- container_name: 给容器命名为
postgres_db
。 - environment: 设置数据库的环境变量,包括用户名、密码和默认数据库名称。
- ports: 将容器的默认 PostgreSQL 端口
5432
映射到主机的5433
端口。 - volumes: 将容器的数据目录
/var/lib/postgresql/data
映射到主机的/opt/docker-data/postgresql
,实现数据持久化。
4. 启动 PostgreSQL 服务
在 docker-compose.yml
文件所在的目录中,执行以下命令来启动服务:
docker-compose up -d
说明:
-d
选项表示以“后台模式”运行容器。- 此时,PostgreSQL 容器将启动,数据将持久化到
/opt/docker-data/postgresql
目录。
5. 验证 PostgreSQL 部署
检查容器状态:
docker-compose ps
您应该会看到类似如下的输出,表示 PostgreSQL 容器正在运行:
Name Command State Ports ------------------------------------------------------------------------- postgres_db docker-entrypoint.sh postgres Up 0.0.0.0:5433->5432/tcp
登录到 PostgreSQL 容器进行验证:
docker exec -it postgres_db psql -U root -d demo
命令解释:
docker exec -it postgres_db
:进入名为postgres_db
的容器。psql -U root -d demo
:使用root
用户登录到demo
数据库。
6. 连接 PostgreSQL 数据库
您可以使用任意数据库客户端连接 PostgreSQL。连接参数如下:
- 主机:
localhost
或 Docker 主机 IP - 端口:
5433
- 用户名:
root
- 密码:
123456
- 数据库:
demo
示例命令行连接:
psql -h localhost -p 5433 -U root -d demo
7. 停止和删除 PostgreSQL 容器
如需停止和删除容器,可以执行以下命令:
docker-compose down
该命令将停止容器并删除网络配置,但不会删除持久化的数据(数据保存在 /opt/docker-data/postgresql
目录下)。
8. 备份与恢复数据
备份数据库
您可以使用以下命令来备份数据库:
docker exec -t postgres_db pg_dump -U root demo > /opt/docker-data/postgresql/backup.sql
恢复数据库
如果您需要从备份中恢复数据,可以执行以下命令:
docker exec -i postgres_db psql -U root -d demo < /opt/docker-data/postgresql/backup.sql
结束语
通过以上步骤,您已经成功使用 Docker Compose 部署了 PostgreSQL,并且数据已经持久化到指定的路径 /opt/docker-data/postgresql
。这个部署方案方便了数据库的管理和备份,适合在开发和生产环境中使用。
到此这篇关于Docker Compose安装部署PostgreSQL数据库的实现步骤的文章就介绍到这了,更多相关Docker Compose安装部署PostgreSQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
docker 报错 Exited (1) 4 minutes ago的原因分析
这篇文章主要介绍了docker 报错 Exited (1) 4 minutes ago的原因分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)
这篇文章主要介绍了SpringBoot打包上传到docker并实现多实例部署(IDEA版),本文通过图文并茂实例详解的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-04-04IDEA通过Docker插件部署SpringBoot项目的过程详解
在idea中如何通过Docker插件部署SpringBoot项目呢?很多朋友在配置过程中走了很多误区,今天小编给大家分享一篇教程关于IDEA通过Docker插件部署SpringBoot项目的过程,感兴趣的朋友一起看看吧2021-11-11
最新评论