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

简要介绍

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 服务器。这样的环境搭建方式轻便、灵活,适合开发和测试使用。希望这篇博客能对你有所帮助!

相关推荐
TDD_06283 小时前
【运维】Centos硬盘满导致开机时处于加载状态无法开机解决办法
linux·运维·经验分享·centos
x66ccff3 小时前
vLLM 启动 GGUF 模型踩坑记:从报错到 100% GPU 占用的原因解析
linux
William.csj3 小时前
Linux——开发板显示器显示不出来,vscode远程登录不进去,内存满了的解决办法
linux·vscode
爱编程的王小美4 小时前
Docker基础详解
运维·docker·容器
白夜易寒4 小时前
Docker学习之容器虚拟化与虚拟机的区别(day11)
学习·docker·容器
KeithTsui4 小时前
GCC RISCV 后端 -- 控制流(Control Flow)的一些理解
linux·c语言·开发语言·c++·算法
森叶4 小时前
linux如何与windows进行共享文件夹开发,不用来回用git进行拉来拉去,这个对于swoole开发者来说特别重要
linux·git·swoole
liulilittle4 小时前
Linux 高级路由策略控制配置:两个不同路由子网间通信
linux·网络·智能路由器
学习至死qaq4 小时前
windows字体在linux访问异常
linux·运维·服务器
在野靡生.5 小时前
Ansible(4)—— Playbook
linux·运维·ansible