在 Docker 中运行 PostgreSQL

导语
我们在这里要做的是下载PostgreSQL镜像,检查镜像是否准备好,使用特定参数运行镜像,最后连接到正在运行的PostgreSQL实例。

1.拉取一个 PostgreSQL 服务器 Docker 镜像

首先,我们需要从Docker Hub获取现有的 PostgreSQL 官方镜像。如果您需要特定版本,latest 请将标签更改 为所需版本。
现在让我们拉取镜像:

1
sudo docker pull postgres:latest

使用上述命令将从 Docker Hub 存储库中提取最新可用版本的 PostgreSQL。

2. 从 PostgreSQL 服务器 Docker 镜像运行容器

在部署之前,您需要设置一个 Docker 卷或绑定安装来持久化您的数据库。否则,当容器重新启动时,您的数据将丢失。安装应该 /var/lib/postgresql/data 在容器内的目录中。
出于本指南的目的,我们将创建一个 docker 卷并将其附加到您的 PostgreSQL 容器。
以下命令将在您的本地计算机中创建卷,您可以稍后与 PostgreSQL 容器连接:

1
sudo docker volume create postgres-volume

现在你的机器上有 PostgreSQL 镜像和一个用于保存数据的卷,你可以部署一个容器:

1
sudo docker run -d --name=postgres14 -p 5432:5432 -v postgres-volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=your_password postgres

默认用户名是 postgres

该 docker run 命令将在 Docker 容器中创建一个正在运行的 PostgreSQL 数据库。

让我们分解一下这个语法。以下是该命令中每个参数的含义:

-d 将以分离模式运行此容器,以便它在后台运行。
–name 将名称“postgres13”分配给您的容器实例。
-p会将 PostgreSQL 容器端口 5432 绑定到主机上的相同端口。您将能够localhost:5432 使用psql在您的主机上运行的PostgreSQL 客户端进行连接 。
-v选项将容器卷 ( /var/lib/postgresql)内的数据文件夹绑定到postgres-volume您在上一步中创建的本地 Docker 卷。
-e设置环境变量。在这种情况下,PostgreSQL 根密码。
postgres 是我们用来创建容器的镜像的名称。
您可以通过列出正在运行的容器来检查容器是否正在运行:

1
sudo docker ps

恭喜!您的新 PostgreSQL 实例现在正在 Docker 上运行。

此外,您可以使用以下命令检查正在运行的 PostgreSQL 容器的日志文件:

1
sudo docker logs postgres14

3. 连接到PostgreSQL服务器

您可以通过附加到容器并运行psql命令来获得交互式 PostgreSQL shell 。这提供了完整的 PostgreSQL 命令行界面,因此您可以使用所有熟悉的命令和标志。

1
sudo docker exec -it postgres13 psql -U postgres

psql如果您在主机上预安装了PostgreSQL 客户端,您还可以使用PostgreSQL 客户端连接 PostgreSQL Docker 实例。

1
psql -h localhost -U postgres

4. 用可视化工具 pgadmin4 管理

4.1 在docker中部署pgadmin4

拉取postgresql可视化工具pgadmin4

1
docker pull dpage/pgadmin4

运行pgadmin4:

-p 5433:80 将容器的80端口映射到宿主机的5433端口

1
docker run -d -p 5433:80 --name pgadmin4 -e PGADMIN_DEFAULT_EMAIL=test@123.com -e PGADMIN_DEFAULT_PASSWORD=your_password dpage/pgadmin4

------------- 感谢您的阅读-------------
作者dreamingpoet
有问题请发邮箱 Dreamingoet@126.com
您的鼓励将成为创作者的动力