资讯详情

Linux-Tutorial:Docker 方式安装与配置 PostgreSQL(带数据挂载)实战指南

📅 2026/10/6 7:24:21 | 华诺云谱 👁 阅读
Linux-Tutorial:Docker 方式安装与配置 PostgreSQL(带数据挂载)实战指南
文档教程技术博客【免费下载链接】Linux-Tutorial《Java 程序员眼中的 Linux》项目地址https://gitcode.com/gh_mirrors/li/Linux-Tutorial点击查看免费下载PostgreSQL 是功能强大的开源关系型数据库也是《Java 程序员眼中的 Linux》教程Linux-Tutorial 仓库中重点收录的数据库专题之一。本指南以仓库文档 markdown-file/PostgreSQL-Install-And-Settings.md 为核心骨架讲解如何通过 Docker 一条命令完成 PostgreSQL 11 的部署、用户与密码初始化、宿主机数据挂载以及容器内外的连接验证并对照仓库中 SonarQube、GitLab、CI 等真实使用 PostgreSQL 的编排配置给出可直接复用的生产级写法。读完本文你将掌握容器化 数据持久化 客户端连接的 PostgreSQL 标准落地路径。版本与资源来源在动手安装前先明确镜像与文档的来源PostgreSQL 官方发布信息与文档以官方网站为准官方同时在 Docker Hub 上维护postgres官方镜像用于docker pull/docker run直接拉取运行。仓库文档记录的时间点2019 年 6 月下PostgreSQL 当时的最新版本状态为12处于 beta 阶段11为正式 release 版本因此本文示例直接采用postgres:11镜像标签。说明本文中的版本号是仓库文档撰写时点201906的记录。实际部署时请以官方当前发布的稳定版本为准将镜像标签替换为对应版本号即可其余参数完全通用。前置条件可用的 Docker 运行环境PostgreSQL 容器化安装的前提是宿主机已安装并启动 Docker。仓库中提供了完整的安装脚本与手册favorite-file/shell/install_docker_centos7.shCentOS 7 一键安装 Docker CE含 yum 源配置、systemctl start docker.service、hello-world 验证、docker-compose 安装。markdown-file/Docker-Install-And-Usage.mdDocker 基础概念、镜像/容器/挂载/端口映射等核心用法详解。部署前建议执行docker version确认 Docker 服务正常并可通过docker pull postgres:11提前拉取镜像避免docker run首次运行时因下载镜像而超时。Docker 安装 PostgreSQL带挂载仓库文档给出的核心安装命令如下完整保留原文写法docker run \ -d \ --name pgsql \ -p 5432:5432 \ -e POSTGRES_USERadg_user \ -e POSTGRES_PASSWORDadg123456 \ -v ~/docker_data/pgsql/data:/var/lib/postgresql/data \ postgres:11该命令一次性完成了拉镜像、建容器、初始化数据库、暴露端口、持久化数据全部动作逐参数拆解如下参数取值示例作用说明-d无以守护后台模式运行容器日志不占用当前终端与仓库 Docker-Install-And-Usage.md 中对-d的说明一致--namepgsql为容器命名后续docker exec、docker restart、docker stop等操作可直接用该名字定位容器-p 5432:5432宿主机端口:容器端口端口映射将宿主机的 5432 端口映射到容器内的 5432 端口PostgreSQL 默认监听端口外部程序通过宿主机 IP:5432 即可访问-e POSTGRES_USERadg_user环境变量指定 PostgreSQL 初始化时创建的超级用户名称见下文环境变量详解-e POSTGRES_PASSWORDadg123456环境变量指定上述超级用户的密码-v~/docker_data/pgsql/data:/var/lib/postgresql/data数据卷挂载宿主机目录映射到容器内 PostgreSQL 的数据目录PGDATA实现数据持久化见下文挂载与持久化镜像名postgres:11官方 PostgreSQL 11 镜像未写 TAG 时默认latest生产环境建议显式指定版本容器启动后可用docker ps确认容器状态为 Up并看到5432/tcp端口映射。环境变量详解官方postgres镜像在容器首次初始化时读取环境变量完成建库建用户核心变量如下POSTGRES_USER初始化时创建的超级用户名称。示例中的adg_user即数据库管理员账号同时也是后续psql登录所使用的用户名。POSTGRES_PASSWORD上述超级用户的密码示例为adg123456。生产环境务必替换为高强度密码。POSTGRES_DB初始化时创建的默认数据库名未显式设置时官方镜像默认创建与POSTGRES_USER同名的数据库。环境变量仅在**数据目录为空首次初始化**时生效。若挂载目录已存在由旧容器初始化过的数据再次docker run时环境变量会被忽略账号密码以既有数据为准——这正是带挂载方案的意义所在下文详解。数据挂载与持久化原理-v ~/docker_data/pgsql/data:/var/lib/postgresql/data的含义是将宿主机~/docker_data/pgsql/data目录与容器内/var/lib/postgresql/dataPostgreSQL 官方镜像的 PGDATA 数据目录绑定。仓库 Docker-Install-And-Usage.md 对-v的原始解释为-v表示需要将本地宿主机的目录挂载到容器中对应的一个目录上格式-v 宿主机目录:容器目录此时对容器此目录的操作也等同于对宿主机的目录的操作。由此可以推断出带挂载部署带来的两个关键收益数据不随容器销毁而丢失删除容器、重建容器只要宿主机~/docker_data/pgsql/data目录还在数据就在这比不带挂载的裸容器数据写入容器可写层安全得多。便于备份与迁移数据库文件直接落在宿主机目录可配合 crontab 等做宿主机层面的定时备份仓库中 favorite-file/shell/mysql_backup.sh 展示的就是同类宿主机脚本化备份的思路。连接验证进容器 psql 登录容器启动后仓库文档给出了标准的两步连接流程第一步进入容器终端docker exec -it pgsql /bin/bashdocker exec用于对已运行的容器执行命令-it分配交互式伪终端这是进入容器做维护、监控的常规方式详见 Docker-Install-And-Usage.md 中docker exec一节。第二步通过 psql 连接 PostgreSQLpsql -h 127.0.0.1 -p 5432 -U adg_user-h 127.0.0.1连接地址这里连接的是容器内的本机回环地址经由-p 5432:5432映射打通。-p 5432端口与前面映射的容器内端口一致。-U adg_user以POSTGRES_USER指定的超级用户身份登录。执行后按提示交互式输入密码即POSTGRES_PASSWORD的值进入psql交互界面。进入后可通过SELECT version();验证版本与连接是否正常退出用\q。如果宿主机上没有psql客户端也可在宿主机直接执行docker exec -it pgsql psql -U adg_user免进容器完成同样的登录验证。仓库中的 PostgreSQL 实战佐证容器化编排的真实用法本仓库中多处真实使用 PostgreSQL 的编排配置与本指南的安装写法完全同构可直接对照参考1. Gravitee CI 环境官方镜像 用户密码 数据挂载favorite-file/gravitee-docker-compose/environments/ci/docker-compose.yml 中 SonarQube 依赖的 PostgreSQL 服务image: postgres:alpine environment: - POSTGRES_USERsonar - POSTGRES_PASSWORDsonar volumes: - /opt/sonarqube/postgresql/data:/var/lib/postgresql/data可见POSTGRES_USER、POSTGRES_PASSWORD两个环境变量与-v ...:/var/lib/postgresql/data的挂载写法与本文docker run示例完全一致只是换成了 Compose 语法。2. SonarQube 使用 PostgreSQL 的 JDBC 连接markdown-file/SonarQube-Install-And-Usage.md 中 SonarQube 通过SONARQUBE_JDBC_URLjdbc:postgresql://sonardb:5432/sonar访问同 Compose 网络内的 PostgreSQL印证了容器内端口 5432、数据库名 sonar与本文端口规划的一致性。3. GitLab 与 CI 整套服务的 PostgreSQL 依赖markdown-file/Gitlab-Install-And-Settings.md 使用sameersbn/postgresql:9.6-2镜像并挂载/data/docker/gitlab/postgresql:/var/lib/postgresql展示了宿主机建目录 → 赋权 → 挂载的完整流程。markdown-file/CI-Install-And-Usage.md 中postgres:9.6.6服务同样通过POSTGRES_USERsonar、POSTGRES_PASSWORDsonar初始化并被 SonarQube 以jdbc:postgresql://sonardb:5432/sonar消费。这些真实编排可以佐证官方 postgres 镜像 POSTGRES_* 环境变量初始化 /var/lib/postgresql/data 挂载是本仓库乃至容器化部署 PostgreSQL 的一致标准范式本文的docker run写法是其最简可运行形态。日常运维与注意事项1. 重启与数据保持docker restart pgsql重启容器不会影响挂载目录中的数据即使执行docker stop pgsql后删除容器docker rm pgsql再按原命令重新docker run保持同一-v挂载路径与镜像数据依然完整——前提是挂载目录未被清理。2. 日志查看后台容器-d的启动日志与错误信息通过docker logs -f pgsql查看初始化失败、密码错误等问题通常都能在日志中找到直接原因详见 Docker-Install-And-Usage.md 的docker logs一节。3. 开放防火墙端口若需让其他机器访问宿主机 5432 端口参照仓库 Docker 手册中的方式开放端口以 CentOS 7 firewalld 为例firewall-cmd --zonepublic --add-port5432/tcp --permanent firewall-cmd --reload4. 数据备份通用实践PostgreSQL 官方客户端自带pg_dump逻辑备份工具可在容器内执行通用实践供参考docker exec -it pgsql pg_dump -U adg_user -h 127.0.0.1 数据库名 /宿主机路径/backup.sql结合数据目录已挂载到宿主机的特性也可直接对~/docker_data/pgsql/data目录做文件级备份两者可互为补充。5. 密码安全提醒示例中的adg123456仅为演示用途生产环境务必使用强密码并避免在命令行历史中直接暴露POSTGRES_PASSWORD可改用--env-file或环境管理工具注入。小结本指南完整继承了仓库文档 markdown-file/PostgreSQL-Install-And-Settings.md 的核心内容——官网版本信息、docker run带挂载安装命令、docker exec进容器、psql连接验证——并在此基础上补齐了参数逐项解析、环境变量语义、挂载持久化原理、端口开放与备份运维以及仓库内 Gravitee/SonarQube/GitLab 的真实编排佐证。按照本文步骤即可在几分钟内获得一个数据持久、可验证连接、可平滑重建的 PostgreSQL 容器化实例。赞分享文档教程技术博客【免费下载链接】Linux-Tutorial《Java 程序员眼中的 Linux》项目地址https://gitcode.com/gh_mirrors/li/Linux-Tutorial点击查看免费下载相关推荐Linux-Tutorial磁盘挂载fstab配置与自动挂载实战Linux Tutorial磁盘挂载fstab配置与自动挂载实战 磁盘挂载是Linux系统管理中的基础操作无论是服务器新增存储设备还是本地扩展存储空间正确文档教程技术博客FlexSearch 结合 PostgreSQL 的持久化索引实战安装、挂载、配置与底层实现解析FlexSearch 结合 PostgreSQL 的持久化索引实战安装、挂载、配置与底层实现解析 导读 本文围绕 FlexSearch 官方文档 doc/pe搜索引擎后端NetBox项目PostgreSQL数据库安装与配置指南NetBox项目PostgreSQL数据库安装与配置指南 前言 在部署NetBox网络基础设施管理系统时PostgreSQL数据库的正确安装和配置是基础且关键后端网络数据建模上一篇终极指南用Java快速构建微信个人号自动化机器人下一篇如何快速掌握OmniParse10分钟学会解析PDF、图像和网页内容的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑