Docker Desktop 安装

Docker Desktop 安装 PostgreSQL 并挂载本地卷

在开发环境中,PostgreSQL 是一个非常受欢迎的开源关系型数据库。通过 Docker Desktop,我们可以轻松地在本地安装并运行 PostgreSQL,同时利用 Docker 的卷功能来实现数据的持久化,确保即使容器被删除,数据也不会丢失。

一、准备工作

确保你已经安装了 Docker Desktop。如果尚未安装,请从 Docker 官方网站 下载并安装。

二、拉取 PostgreSQL 镜像

打开终端或命令提示符,运行以下命令来拉取 PostgreSQL 的官方镜像:

复制代码
docker pull postgres

这会从 Docker Hub 下载最新的 PostgreSQL 镜像到你的本地机器。

三、创建本地目录

为了实现数据持久化,我们需要创建一个本地目录来存储 PostgreSQL 的数据。运行以下命令来创建目录(根据你的需求修改路径):

bash 复制代码
mkdir -p /path/to/postgres/data

在 Windows 上,路径可能类似于 C:\ProgramData\Docker\Containers\postgres\data

四、运行 PostgreSQL 容器并挂载本地卷

使用以下命令运行 PostgreSQL 容器,并将本地目录挂载到容器内的数据目录:

kotlin 复制代码
docker run -d -p 5432:5432 --name mypostgres -e POSTGRES_PASSWORD=mysecretpassword -v C:\ProgramData\Docker\Containers\postgres\data/data:/var/lib/postgresql/data postgres

这条命令的含义如下:

  • -d:后台运行容器。
  • -p 5432:5432:将容器的 5432 端口映射到宿主机的 5432 端口。
  • --name mypostgres:为容器命名为 mypostgres
  • -e POSTGRES_PASSWORD=mysecretpassword:设置 PostgreSQL 默认用户 postgres 的密码。
  • -v /path/to/postgres/data:/var/lib/postgresql/data:将本地目录挂载到容器内的 /var/lib/postgresql/data 目录,实现数据持久化。

五、验证容器运行状态

运行以下命令来查看所有正在运行的容器,确认 PostgreSQL 容器已经启动:

复制代码
docker ps

你应该能看到名为 mypostgres 的容器正在运行。

六、连接到 PostgreSQL 数据库

你可以使用任何 PostgreSQL 客户端工具连接到数据库。以下是一些常见的连接方式:

使用命令行工具

bash 复制代码
docker exec -it mypostgres psql -U postgres

这将打开 PostgreSQL 的命令行界面,你可以在这里执行 SQL 命令。

使用 pgAdmin

如果你使用的是 pgAdmin,可以通过以下连接信息连接到数据库:

  • Hostlocalhost
  • Port5432
  • Usernamepostgres
  • Password:你在启动容器时设置的密码。

七、数据持久化验证

为了验证数据是否持久化,你可以:

  1. 在数据库中创建一个表并插入一些数据。

  2. 停止并删除容器:

    arduino 复制代码
    docker stop mypostgres
    docker rm mypostgres
  3. 重新运行容器:

    kotlin 复制代码
    docker run -d -p 5432:5432 --name mypostgres -e POSTGRES_PASSWORD=mysecretpassword -v /path/to/postgres/data:/var/lib/postgresql/data postgres
  4. 连接到数据库,检查之前创建的表和数据是否仍然存在。

八、总结

通过上述步骤,我们成功地在 Docker Desktop 上安装了 PostgreSQL,并通过挂载本地卷实现了数据的持久化。这种方式不仅简化了 PostgreSQL 的安装和配置过程,还确保了数据的安全性和持久性,非常适合开发和测试环境。

如果你在操作过程中遇到任何问题,可以参考 Docker 和 PostgreSQL 的官方文档,或者在相关社区寻求帮助。希望这篇文章能帮助你更好地利用 Docker Desktop 和 PostgreSQL,提升你的开发效率。

相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
大勇前进2 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu2 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile2 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白802 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端
二月龙2 天前
PHP 接口返回统一响应封装,让前后端对接更省心
后端
盖伦发发2 天前
软件工程SOLID 五大设计原则
后端·软件工程