Docker 部署 PostgreSQL数据库的两种方式

 更新时间:2025年07月03日 11:44:52   作者:liora6  
本文介绍了使用Docker部署PostgreSQL数据库的两种方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

1. 使用 docker命令部署

部署命令:

docker run --name dbname-postgres \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=postgrespwd \
  -e POSTGRES_DB=db-default \
  -p 5432:5432 \
  -v /path/to/data:/var/lib/postgresql/data \
  --restart always \
  -d postgres:latest

参数说明:

  • POSTGRES_USER: 设置数据库用户名(默认为 postgres)
  • POSTGRES_PASSWORD: 设置数据库密码
  • POSTGRES_DB: 设置默认数据库(默认为 POSTGRES_USER 的值)
  • -p 5432:5432: 将容器端口映射到主机端口,如果将主机端口改为5000,则为5000:5432
  • -v /path/to/data:/var/lib/postgresql/data: 数据持久化到主机目录
  • postgres:latest: 指定 PostgreSQL 版本为最新版本
  • postgres:13: 指定 PostgreSQL 版本为 13

2. 使用 Docker Compose 部署

创建 docker-compose.yml 文件:

# 指定 Docker Compose 文件格式版本
version: '3.8'
# 定义服务列表
services:
  # 定义 PostgreSQL 服务
  postgres:
    # 使用 PostgreSQL 官方镜像,版本13
    image: postgres:latest
    # 指定容器名称(如果不指定,Docker 会自动生成)
    container_name: db-postgres
    # 环境变量配置
    environment:
      # 设置 PostgreSQL 超级用户(默认为 postgres)
      POSTGRES_USER: postgres
      # 设置 PostgreSQL 超级用户密码(必须设置)
      POSTGRES_PASSWORD: postgrespwd
      # 设置默认创建的数据库名称(默认为 POSTGRES_USER 的值)
      POSTGRES_DB: db-default
    # 端口映射配置(主机端口:容器端口)
    ports:
      - "5432:5432"  # 将容器内部的5432端口映射到主机的5432端口
    # 数据卷配置(持久化数据)
    volumes:
      # 使用命名卷 postgres_data 挂载到容器中的数据库数据目录
      - postgres_data:/var/lib/postgresql/data
    # 容器重启策略
    restart: always  # 总是自动重启容器,无论退出状态如何
# 定义卷列表(用于数据持久化)
volumes:
  # 定义一个名为 postgres_data 的命名卷
  # Docker 会自动管理这个卷,确保数据库数据持久化
  # 即使容器被删除,数据也不会丢失
  postgres_data:

然后运行:

docker-compose up -d

3. 连接 PostgreSQL

容器运行后,可以通过以下方式连接:

  1. 从主机连接:
psql -h localhost -U myuser -d mydatabase
  1. 进入容器内部连接:
docker exec -it my-postgres psql -U myuser -d mydatabase

4. 常用管理命令

  • 查看运行中的容器:docker ps
  • 查看日志:docker logs my-postgres
  • 停止容器:docker stop my-postgres
  • 启动容器:docker start my-postgres
  • 删除容器:docker rm my-postgres(需要先停止)

5. 高级配置

如果需要自定义 PostgreSQL 配置,可以:

  1. 创建自定义配置文件 postgresql.conf
  2. 挂载到容器中:
-v /path/to/postgresql.conf:/etc/postgresql/postgresql.conf
  1. 启动时指定配置文件:
-e POSTGRES_CONFIG_FILE=/etc/postgresql/postgresql.conf

注意事项

  1. 数据持久化:务必使用卷或绑定挂载来持久化数据,否则容器删除后数据会丢失
  2. 安全性:不要使用弱密码,生产环境应考虑更复杂的安全配置
  3. 性能:对于生产环境,可能需要调整共享缓冲区等参数
  4. 备份:定期备份数据库数据

到此这篇关于Docker 部署 PostgreSQL 指南的文章就介绍到这了,更多相关Docker 部署 PostgreSQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Docker数据管理(数据卷&数据卷容器)

    详解Docker数据管理(数据卷&数据卷容器)

    容器中管理数据主要有两种方式,这篇文章主要介绍了详解Docker数据管理(数据卷&数据卷容器) ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp的解决过程

    docker拉取镜像报错:Error response from daemon: Get “https://r

    今天做完一个新项目,搭建了一个新的虚拟机,打算使用docker来搭建各种环境,发现拉取镜像报错Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp,所以接下来给大家介绍了docker拉取镜像报错的解决过程,需要的朋友可以参考下
    2024-08-08
  • 在Docker构建的容器中实现安装ping工具

    在Docker构建的容器中实现安装ping工具

    这篇文章主要介绍了在Docker构建的容器中实现安装ping工具,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker部署nginx并且实现https的方法步骤

    docker部署nginx并且实现https的方法步骤

    启用HTTPS可以提高网站的安全性、可信度,同时符合法规要求,本文主要介绍了docker部署nginx并且实现https的方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Windows10系统下Docker默认存储位置更改方案

    Windows10系统下Docker默认存储位置更改方案

    这篇文章主要给大家介绍了关于Windows10系统下Docker默认存储位置更改方案的相关资料,在Docker中存储路径是一个重要的话题,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • docker部署nodejs开发环境详细步骤(基础示例篇)

    docker部署nodejs开发环境详细步骤(基础示例篇)

    这篇文章主要给大家介绍了docker部署nodejs开发环境详细步骤,docker是一个开源的应用容器引擎,可以为我们提供安全、可移植、可重复的自动化部署的方式,需要的朋友可以参考下
    2023-10-10
  • ubuntu下卸载docker方式与具体步骤

    ubuntu下卸载docker方式与具体步骤

    这篇文章主要介绍了ubuntu下卸载docker方式与具体步骤,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-06-06
  • Linux使用skopeo工具如何进行docker镜像同步

    Linux使用skopeo工具如何进行docker镜像同步

    这篇文章主要介绍了Linux使用skopeo工具如何进行docker镜像同步问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Docker容器进入的4种方式(小结)

    Docker容器进入的4种方式(小结)

    本文主要介绍了Docker容器进入的4种方式(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • docker如何配置mysql主从复制

    docker如何配置mysql主从复制

    文章介绍了如何在CentOS 7上搭建一个MySQL集群,包括创建Docker环境、配置文件设置、创建和启动MySQL容器、设置远程访问以及配置主从同步
    2024-12-12

最新评论