Docker Compose安装部署PostgreSQL数据库的实现步骤

 更新时间:2024年12月16日 11:44:05   作者:宋发元  
本文主要介绍了使用DockerCompose在Linux服务器上部署PostgreSQL,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

以下是一个完整的 PostgreSQL Docker Compose 部署教程,包括配置和部署详细步骤。本文将指导您如何在 Linux 服务器上使用 Docker Compose 来部署 PostgreSQL,并将数据持久化到指定路径。

1. 环境准备

确保您的系统上已经安装了以下软件:

验证安装是否成功:

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 镜像传输的实现步骤

    Docker 镜像传输的实现步骤

    本文主要介绍了Docker 镜像传输的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • 详解如何将docker快速升级到最新版本

    详解如何将docker快速升级到最新版本

    最近在对区块链浏览器调优,该区块链浏览器就是使用docker部署的微服务,在一台新的服务器上启动时报错,发现是docker版本过低,所以本文给大家介绍了将docker快速升级到最新版本的方法,需要的朋友可以参考下
    2024-02-02
  • 基于docker安装mariadb配置过程解析

    基于docker安装mariadb配置过程解析

    这篇文章主要介绍了基于docker安装mariadb配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

    jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

    今天小编就为大家分享一篇关于jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • docker映射端口穿透内置防火墙的实现

    docker映射端口穿透内置防火墙的实现

    在使用Docker部署项目时,即使未开启CentOS7的Firewalld防火墙,端口仍可被外网访问,这是因为Docker在安装后会接管iptables,并自动添加规则以放行指定端口,解决方法包括依赖外置防火墙放行端口、指定端口监听地址为本机、禁用Docker的iptables规则修改
    2024-10-10
  • Docker Compose引用环境变量的方法示例

    Docker Compose引用环境变量的方法示例

    在项目中,往往需要在 docker-compose.yml 文件中使用环境变量来控制不同的条件和使用场景。本文集中介绍 docker compose 引用环境变量的方式,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Dockerfile中的ENV指令的具体使用详解

    Dockerfile中的ENV指令的具体使用详解

    这篇文章主要介绍了Dockerfile中的ENV指令的具体使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 使用 Docker 在 Ubuntu 上部署 FTP 服务器的步骤

    使用 Docker 在 Ubuntu 上部署 FTP 服务器

    本文详细介绍了如何在Ubuntu系统上通过Docker部署FTP服务器的步骤,包括安装Docker、拉取vsftpd镜像以及运行FTP容器等,通过这些步骤,用户可以在提供的免费云服务器上快速搭建起一个安全高效的FTP服务,适合小型项目或个人使用,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • Docker容器操作方法详解

    Docker容器操作方法详解

    Docker 在隔离的容器中运行进程。之前总结了Docker镜像的使用详解,本篇按照之前测试openGauss容器过程中总结出来使用Docker容器的常用命令
    2022-08-08
  • docker nginx + https 子域名配置详细教程

    docker nginx + https 子域名配置详细教程

    这篇文章主要介绍了docker nginx + https 子域名配置详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论