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

news/2025/1/15 9:00:45/

简要介绍

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/news/1563278.html

相关文章

探索AI与鸿蒙开发新领域:从《星火AI使用指南》到《鸿蒙应用开发宝典》

探索AI与鸿蒙开发 前言AI智能化办公讯飞星火AI使用方法与技巧从入门到精通内容简介获取方式 鸿蒙HarmonyOS应用开发从入门到精通内容简介获取方式 总结 前言 在数字化的今天,科技的飞速发展让我们每天都在面临新的挑战和机遇。尤其是对于那些追求效率、寻求突破的职…

实景三维模型在智慧城市中的应用

在我国现代化社会发展的各个行业领域中,倾斜摄影测量技术和实景三维模型技术都得到了普遍的应用。尤其是在指挥城市建设工作中,利用这两项技术能够有效地提高数据的准确性和及时性,增强整个智慧城市建设的合理性,进而保证城市发展…

lombok在高版本idea中注解不生效的解决

环境: IntelliJ IDEA 2024.3.1.1 Spring Boot Maven 问题描述 使用AllArgsConstructor注解一个用户类,然后调用全参构造方法创建对象,出现错误: java: 无法将类 com.itheima.pojo.User中的构造器 User应用到给定类型; 需要:…

Ubuntu-Install-Ros2

… redirect-from:: Installation/Linux-Install-Debians Installation/Ubuntu-Install-DebiansUbuntu (deb packages) … contents:: 目录 :depth: 2 :local: ROS 2 {DISTRO_TITLE_FULL} 的 deb 包目前可用于 Ubuntu Jammy (22.04)。 目标平台在 REP 2000 <https://ros.…

macOS 如何终止端口占用的进程 ?

您是否遇到过这样的情况&#xff1a;您试图在 Mac 上启动服务器或服务&#xff0c;却被告知端口已被占用&#xff1f;当您试图使用的端口被另一个进程占用时&#xff0c;就会出现此问题。在本教程中&#xff0c;我们将指导您完成在 macOS 上识别和终止这些进程的步骤&#xff0…

《零基础Go语言算法实战》【题目 4-1】返回数组中所有元素的总和

《零基础Go语言算法实战》 【题目 4-1】返回数组中所有元素的总和 请用 Go 语言编写一个函数&#xff0c;将整数数组作为输入并返回数组中所有元素的总和。 【解答】 package main import "fmt" func sumArray(array [5]int) int { sum : 0 for _, val : range…

【专题】2025年节日营销趋势洞察报告汇总PDF洞察(附原数据表)

原文链接&#xff1a; https://tecdat.cn/?p38813 在当今复杂多变且竞争激烈的消费市场环境下&#xff0c;节日营销已成为企业获取市场份额、提升品牌影响力的关键战略时机。我们深知深入洞察节日营销趋势对于企业决策的重要性。 本报告汇总基于对 2024 年多个关键消费节点及…

【C++】多线程

目录 多线程基础什么是线程线程和进程的关系线程的特点什么是多线程编程为什么要使用多线程线程与CPU的执行关系线程的生命周期 创建线程&#xff08;C11&#xff09;线程的可调用对象传参数 注意事项join和detach的区别一个线程包含什么东西this_thread 线程同步线程同步机制互…