导语
我们在这里要做的是下载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