在 Ubuntu 下通过 Docker 部署 PSQL 服务器

嗨,各位技术爱好者!今天我们要聊的是如何在 Ubuntu 系统中通过 Docker 部署 PostgreSQL(简称 PSQL)服务器。对于那些还不熟悉 Docker 和 PSQL 的小伙伴,Docker 是一个开源的容器化平台,可以让你轻松构建、部署和管理应用。而 PostgreSQL 是一个功能强大的开源关系数据库管理系统,以其稳定性和强大的功能而闻名。

Docker 和 PSQL 简介

  • Docker:通过容器技术,Docker 使得应用打包、分发和运行变得无比简单。你可以在任何环境中运行容器,而不必担心依赖问题,这就像为你的应用提供了一个隔离的"沙盒"环境。

  • PostgreSQL:作为一个成熟的数据库,PostgreSQL 支持先进的数据类型、复杂的查询和高并发处理。它的扩展性和强大的性能使其成为开发者的首选。

在 Ubuntu 下通过 Docker 部署 PSQL 服务器的步骤

下面是详细的步骤,你只需按照命令逐步操作,轻松搞定!

1. 安装 Docker

首先,确保你的 Ubuntu 系统上安装了 Docker。运行以下命令:

复制代码
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

2. 拉取 PostgreSQL 镜像

接下来,拉取最新的 PostgreSQL 官方 Docker 镜像:

复制代码
sudo docker pull postgres:latest

3. 创建 Docker 网络(可选)

为了管理容器间的通信,可以创建一个自定义网络:

复制代码
sudo docker network create psql-network

4. 运行 PostgreSQL 容器

使用以下命令运行 PostgreSQL 容器,你可以根据需要修改环境变量:

复制代码
sudo docker run --name my-postgres \
  --network psql-network \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_PASSWORD=mypassword \
  -e POSTGRES_DB=mydatabase \
  -p 5432:5432 \
  -d postgres:latest
参数说明:
  • --name my-postgres:指定容器名称。
  • --network psql-network:指定使用的网络。
  • -e POSTGRES_USER=myuser:设置 PostgreSQL 用户名。
  • -e POSTGRES_PASSWORD=mypassword:设置用户密码。
  • -e POSTGRES_DB=mydatabase:设置默认数据库名称。
  • -p 5432:5432:将容器的 5432 端口映射到主机的 5432 端口。
  • -d:以后台模式运行容器。

5. 验证 PostgreSQL 是否运行

运行以下命令,查看容器状态:

复制代码
sudo docker ps

如果看到你的容器在列表中,那就说明 PostgreSQL 正在运行。

6. 连接到 PostgreSQL

使用 psql 工具或任何 PostgreSQL 客户端连接到数据库,命令如下:

复制代码
psql -h localhost -U myuser -d mydatabase

输入密码后,如果成功连接,恭喜你!你已经成功在 Docker 中部署了 PostgreSQL 服务器。

总结

通过 Docker 部署 PostgreSQL 是一件简单而高效的事情。无论是开发环境还是生产环境,Docker 都能为你的应用提供一个稳定而灵活的运行平台。祝你在数据的海洋中遨游愉快!

相关推荐
木子欢儿1 小时前
国内 macOS/Linux 安装 rust
linux·运维·服务器·macos·rust
迪菲赫尔曼1 小时前
【基础篇 26】第一次在服务器完成训练:准备数据、断线继续、检查成果与备份
运维·服务器·人工智能·机器学习·计算机视觉
进击的荆棘1 小时前
Linux系统——线程同步与互斥
linux·运维·服务器·策略模式·同步·互斥·posix
.道阻且长.1 小时前
Linux基本开发工具:gdb和cgdb的使用
linux·运维·服务器·开发语言
叼烟扛炮2 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习
Android系统攻城狮2 小时前
Linux FFmpeg深度解析之av_guess_format调用流程与实战(三十六)
linux·运维·服务器·ffmpeg·ffmpeg音视频进阶
进击的荆棘2 小时前
Linux系统——线程概念与控制之线程封装
linux·运维·服务器·线程
天诰14 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
陈希12316 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡16 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范