当前位置: 首页 > news >正文

Docker 部署 PostgreSQL 数据库

Docker 部署 PostgreSQL 数据库

  • 基于 Docker 部署 PostgreSQL 数据库
    • 一、拉取 PostgreSQL 镜像
    • 二、运行 PostgreSQL 容器
    • 三、运行命令参数详解
    • 四、查看容器运行状态

基于 Docker 部署 PostgreSQL 数据库

一、拉取 PostgreSQL 镜像

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

docker pull postgres

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

二、运行 PostgreSQL 容器

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

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

例如:

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 容器,使容器在后台持续运行,不会占用终端。

四、查看容器运行状态

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

docker ps

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

docker ps -a

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

docker inspect [容器名称或 ID]

例如:

docker inspect my_postgres

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

http://www.xdnf.cn/news/75529.html

相关文章:

  • 记录学习的第三十天
  • 20.4 显示数据库数据
  • Centos 、Linux 基础运维命令
  • 【程序员 NLP 入门】词嵌入 - 如何基于计数的方法表示文本? (★小白必会版★)
  • MacOS 10.15上能跑大语言模型吗?
  • 用Java实现简易区块链:从零开始的探索
  • Mongodb分布式文件存储数据库
  • 相对论大师-记录型正负性质BFS/图论-链表/数据结构
  • sqoop的参数及初体验
  • 【MCP Node.js SDK 全栈进阶指南】初级篇(1):MCP开发环境搭建详解
  • chromedp 反反爬设计方案
  • 美乐迪电玩大厅加载机制与 RoomList 配置结构分析
  • JavaScript之深浅拷贝
  • 安宝特方案 | 医疗AR眼镜,重新定义远程会诊体验
  • 【安装部署】Linux下最简单的 pytorch3d 安装
  • 安宝特案例 | AR如何大幅提升IC封装厂检测效率?
  • C#进阶学习(十)更加安全的委托——事件以及匿名函数与Lambda表达式和闭包的介绍
  • 【架构】ANSI/IEEE 1471-2000标准深度解析:软件密集型系统架构描述推荐实践
  • 【MATLAB第117期】#源码分享 | 基于MATLAB的SSM状态空间模型多元时间序列预测方法(多输入单输出)
  • 4.21—4.22学习总结 JavaWeb:HTML-CSS
  • Laravel 对接阿里云 OSS 说明文档
  • ecovadis评级范围,如何拿到ecovadis评级高分
  • K8S探针的应用
  • 【教程】安装 iterm2 打造漂亮且高性能的 mac 终端
  • k8s-1.28.10 安装metrics-server
  • 模拟实现strncat、qsort、atoi
  • AR/VR衍射光波导性能提升遇阻?OAS光学软件有方法
  • 如何将当前文件夹及其子文件夹下的所有word提取到一个excel里
  • 新能源汽车充电桩:多元化运营模式助力低碳出行
  • CoinNexus Chain 推出泰利风暴,开启 Web3.0 智能金融元宇宙科技新时代