在 Alpine Linux 下通过 Docker 部署 PostgreSQL 服务器

embedded/2025/1/14 14:03:51/

简要介绍

Docker 是一个开源的容器化平台,它使得开发者能够轻松创建、部署和运行应用程序。通过使用 Docker,程序员可以把应用及其所有依赖打包在一个轻量级的容器中,这样可以确保在不同环境中的一致性。PostgreSQL(简称 psql)是一种强大的开源关系型数据库管理系统,因其可靠性、功能丰富性和扩展性而受到广泛使用。结合 Docker 和 PostgreSQL,我们可以快速搭建一个开发环境,便于测试和开发。

在 Alpine Linux 下通过 Docker 部署 psql 服务器的详细教程

步骤 1: 安装 Docker

首先,确保你的 Alpine Linux 系统上已经安装了 Docker。如果没有,可以通过以下命令进行安装:

apk add docker

安装完成后,启动 Docker 服务并设置为开机自启:

service docker start
rc-update add docker boot

步骤 2: 拉取 PostgreSQL 镜像

接下来,我们需要从 Docker Hub 拉取 PostgreSQL 官方镜像:

docker pull postgres

步骤 3: 创建 Docker 网络(可选)

为了让 PostgreSQL 容器与其他容器能够相互通信,可以创建一个自定义网络:

docker network create mynetwork

步骤 4: 启动 PostgreSQL 容器

现在我们可以启动 PostgreSQL 容器。以下命令中,我们设置了环境变量,指定了数据库的用户名、密码和数据库名:

docker run --name mypostgres \--network mynetwork \-e POSTGRES_USER=myuser \-e POSTGRES_PASSWORD=mypassword \-e POSTGRES_DB=mydb \-p 5432:5432 \-d postgres
相关参数解释:
  • --name mypostgres: 指定容器的名称为 mypostgres
  • --network mynetwork: 将容器连接到 mynetwork 网络。
  • -e POSTGRES_USER=myuser: 设置数据库用户名为 myuser
  • -e POSTGRES_PASSWORD=mypassword: 设置数据库密码为 mypassword
  • -e POSTGRES_DB=mydb: 创建一个名为 mydb 的数据库。
  • -p 5432:5432: 将容器的 5432 端口映射到主机的 5432 端口。
  • -d: 后台运行容器。

步骤 5: 验证 PostgreSQL 是否正常运行

通过以下命令查看容器的运行状态:

docker ps

如果你看到 mypostgres 容器在运行,说明 PostgreSQL 部署成功。你可以使用 psql 客户端或任何数据库管理工具连接到数据库,使用以下连接字符串:

postgresql://myuser:mypassword@localhost:5432/mydb

总结

通过以上步骤,我们在 Alpine Linux 上成功使用 Docker 部署了 PostgreSQL 服务器。这样的环境搭建方式轻便、灵活,适合开发和测试使用。希望这篇博客能对你有所帮助!


http://www.ppmy.cn/embedded/153852.html

相关文章

MySQL:内置函数

1.时间函数 获取当前日期 年月日 获取当前的时间 时分秒 获取当前时间戳 自动转化为年月日时分秒 从时间戳截取日期部分 1990-10-1 10天 1990-10-1 - 10分钟 2025-1-11 - 1949-10-1相差多少天 现在的日期和时间 ‘ 案例 创建一个留言表 插入两条数据 查询一下 显示所有留言…

ThreadLocal 的使用场景

在现代电商平台中,ThreadLocal 常用于以下场景,特别是与线程隔离相关的业务中,以提高性能和简化上下文传递。 1. 用户上下文信息管理 场景:在用户发起的每次请求中,需要携带用户 ID、角色、权限等信息,而这…

TypeScript语言的学习路线

TypeScript语言的学习路线 TypeScript(TS)是由Microsoft开发的一种开源编程语言,是JavaScript的超集,提供了严格的类型检查和基于类的面向对象编程特性。随着前端开发的不断进步,TypeScript逐渐成为了现代前端开发的主…

Spark 与 Flink 的对比:哪个更适合实时处理?

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长…

【Rust】结构体示例与调试

目录 思维导图 1. 引言 2. 初始程序示例 3. 使用元组重构 4. 使用结构体重构 5. 调试与输出 6. 进一步的功能扩展 思维导图 1. 引言 本文通过一个计算矩形面积的程序,展示了如何从简单变量逐步重构到使用结构体,以提高代码的清晰度和可管理性。结…

量子技术的发展

量子技术作为一个前沿领域,近年来取得了显著进展,并且在多个领域都展示了潜力,尤其是在计算、通信、传感和加密等方面。尽管量子技术的商用化仍然处于早期阶段,但它的应用前景极为广泛,吸引了大量的研究投入和技术创新。以下是量子技术的最新进展、突破和相关产品的概述。…

宇航用VIRTEX5系列FPGA的动态刷新方法及实现

SRAM型FPGA在宇航领域有广泛的应用,为解决FPGA在空间环境中的单粒子翻转问题,增强设计的可靠性,本文介绍一种低成本的抗辐照解决方案。该方案从外置高可靠存储器中读取配置数据,通过定时刷新结合三模冗余的方式消除单粒子影响&…

Vue 3前端与Python(Django)后端接口简单示例

项目 后端(Django)前端(Vue 3) 后端(Django) 创建Django项目和应用: 确保你已经安装了Django。如果没有安装,可以使用以下命令安装: pip install django创建一个新的Dja…