Docker 部署 PostgreSQL 数据库

Docker 部署 PostgreSQL 数据库

基于 Docker 部署 PostgreSQL 数据库

一、拉取 PostgreSQL 镜像

首先,确保你的 Docker 环境已正确安装并运行。打开终端,通过以下命令拉取 PostgreSQL 镜像:

bash 复制代码
docker pull postgres

执行上述命令后,Docker 会从官方镜像仓库下载 PostgreSQL 镜像到本地。根据网络状况,下载过程可能需要一些时间。

二、运行 PostgreSQL 容器

使用以下命令运行 PostgreSQL 容器:

bash 复制代码
docker run --name [容器名称] -e POSTGRES_PASSWORD=[数据库密码] -e POSTGRES_DB=[数据库名称] -p [宿主机端口]:5432 -v [宿主机目录]:/var/lib/postgresql/data --memory="[内存限制]" --cpuset-cpus="[CPU 核心]" -d postgres

例如:

bash 复制代码
docker run --name my_postgres -e POSTGRES_PASSWORD="your_password_placeholder" -e POSTGRES_DB="your_db_name_placeholder" -p 5432:5432 -v ~/data/pgsql/data:/var/lib/postgresql/data --memory="2gb" --cpuset-cpus="0" -d postgres

三、运行命令参数详解

  1. --name :为容器指定一个名称,方便后续管理和识别。例如,将容器命名为 "my_postgres"。
  2. -e POSTGRES_PASSWORD :设置 PostgreSQL 数据库的密码。在这里,我们将其设置为 "your_password_placeholder",实际使用时请替换为你自己的密码。
  3. -e POSTGRES_DB :创建数据库的名称。此命令示例中设置为 "your_db_name_placeholder",你可以根据实际需求修改数据库名称。
  4. -p :将宿主机端口映射到容器内部的 PostgreSQL 默认端口(5432)。在示例中,我们将宿主机的 5432 端口映射到容器内部的 5432 端口,这样可以直接通过宿主机的 5432 端口访问容器内的 PostgreSQL 服务。
  5. -v :将宿主机目录挂载到容器内部目录,用于数据持久化。例如,将宿主机的 "~/data/pgsql/data" 目录挂载到容器内的 "/var/lib/postgresql/data" 目录,这样可以确保数据不会因容器重建而丢失。
  6. --memory :限制容器可使用的内存大小。在示例中,我们将其设置为 "2gb",即限制容器最多使用 2GB 内存。
  7. --cpuset-cpus :指定容器可以使用的 CPU 核心。如示例中的 "0",表示容器只能使用宿主机的第 0 号 CPU 核心。
  8. -d :以后台方式运行 PostgreSQL 容器,使容器在后台持续运行,不会占用终端。

四、查看容器运行状态

要查看容器的运行状态,可以使用以下命令:

bash 复制代码
docker ps

此命令将列出当前正在运行的容器,包括容器的 ID、名称、镜像、端口映射等信息。如果想查看所有容器(包括已停止的),可以使用:

bash 复制代码
docker ps -a

若想获取更详细的容器信息,例如资源使用情况、网络配置等,可以使用:

bash 复制代码
docker inspect [容器名称或 ID]

例如:

bash 复制代码
docker inspect my_postgres

以上就是在 Docker 中部署 PostgreSQL 数据库的详细步骤,通过以上操作,你就可以在本地快速搭建并运行一个 PostgreSQL 数据库环境,为后续的开发和测试工作提供支持。

相关推荐
Nturmoils2 小时前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
WangMingHua1112 小时前
LM Studio Docker 部署——本地大模型一键启动
docker
渣波6 小时前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
曲幽1 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
倔强的石头_1 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
倔强的石头_4 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab5 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence5 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神5 天前
三、用户与权限管理
数据库·mysql