在本文中,我们将学习如何开始在Docker上使用PostgreSQL。PostgreSQL是许多开发人员正在使用的最流行的开源数据库之一。它非常稳定,拥有一个维护和支持数据库开发生命周期的大型社区。PostgreSQL可以安装在任何操作系统上,如Windows、macOS和Linux。随着集装箱化技术的兴起,PostgreSQL现在也可以使用Docker安装。
Docker是一种流行的应用程序,它使用户能够将应用程序捆绑到容器中,以帮助轻松部署资源。本文将向您介绍在Mac上安装和使用Docker,然后从Docker Hub存储库中提取PostgreSQL Docker映像的基本概念。除了PostgreSQL之外,我们还将使用Docker安装PgAmin4,它可以用来管理带有Docker的PostgreSQL实例。
什么是Docker?我们为什么需要它?
Docker是一种开源的容器化应用程序技术,使用它,您可以轻松地在本地或云上部署应用程序。您可以将应用程序捆绑到docker映像中,这些映像将已经存储运行应用程序所需的必要配置。在部署期间,您只需在生产环境中运行docker映像,所有配置都将从映像中恢复。在上一篇文章“如何设置和运行SQL Server Docker映像”中,我谈到了在本地计算机上安装Docker。请参考安装程序并按照说明操作。成功安装Docker后,您可以使用以下命令在终端上检查它。

图1-检查Docker版本
您可以使用以下命令检查Docker上安装的所有映像。

图2–列出所有已安装的Docker映像
需要注意的是,PostgreSQL Docker映像不应处于活动安装状态,否则需要在继续操作之前将其删除。您可以在终端上使用以下命令删除现有图像。
安装PostgreSQL Docker镜像
现在,我们可以开始将PostgreSQL Docker映像拉到本地机器。Docker镜像托管在云上名为Docker hub的存储库中。您可以从Docker hub提取图像,也可以将图像发布到Docker hub。官方PostgreSQL Docker镜像可以在Docker Hub上找到。要将图像拉到本地,可以在终端上运行以下命令。

图3–在本地服务器上拉取PostgreSQL Docker映像
将docker映像拉入本地计算机后,您可以通过以下命令检查本地计算机上安装的所有映像。

图4-检查本地服务器上已安装的映像
如上图所示,您的计算机上已经安装了PostgreSQL映像。现在,映像已安装,下一步将是运行此映像。当我们运行Docker映像时,会为该映像创建一个新容器。换句话说,容器是Docker映像的运行实例。
运行PostgreSQL映像
要运行PostgreSQL的docker镜像,可以使用以下命令。
docker run –name pgsql-dev -e POSTGRES_PASSWORD=Welcome4$ -p 5432:5432 Postgres
在上面的命令中,我们在docker上调用run方法,该方法将创建现有docker映像的运行实例。除此之外,我们还需要传递以下几个参数。
-
Name–我们需要为docker运行映像时将要创建的容器提供一个名称。
-
环境变量–在为PostgreSQL运行docker映像时,我们需要设置的唯一强制性环境变量是数据库的密码。默认用户是“Postgres”。
-
端口–我们需要定义数据库将在容器中运行的端口,以及主机上可用于访问它的端口。如您所见,命令中提到的两个端口的形式为HOST_PORT:DOCKER_PORT。
最后,我们提供了要从中创建容器的docker映像的名称。

图5–运行PostgreSQL docker映像
运行该命令后,您可以看到容器已启动并准备好接受数据库连接。这里需要注意的一点是,我们没有在分离模式下执行该命令,这意味着只要终端打开,数据库或容器就会运行。
现在,要连接到数据库,让我们打开一个新的终端窗口并键入以下命令。
docker exec -it pgsql-dev bash
此命令将启动容器内的交互式终端。接下来,您可以通过在同一终端上运行以下命令来启动PostgreSQL。
psql -h localhost _U postgresge

图6–从终端与PSQL命令行实用程序交互
通过命令行实用程序连接后,可以列出所有正在运行的数据库并执行其他SQL语句。如果您更喜欢通过GUI使用PostgreSQL环境,请遵循以下步骤。我们还将安装PgAdmin4实用程序,并将其连接到PostgreSQL数据库。
安装PgAdmin4 docker映像
在为PgAdmin4提取docker映像时,可以执行类似的步骤。
ocker pull dpage/pgadmin4

图7–为PgAdmin4安装Docker镜像
要运行PgAdmin4 docker映像,需要运行以下命令。
docker run -e ‘PGADMIN_DEFAULT_EMAIL=test@domain.local’ -e ‘PGADMIN_DEFAULT_PASSWORD=test1234’ -p 8080:80 –name pgadmin4-dev dpage/pgadmin4
PGADMIN 4映像接受两个强制环境变量PGADMIN_DEFAULT_EMAIL和PGADMIN_ DEFAULT_ PASSWORD,使web应用程序能够登录。除此之外,我们还指定了PgAdmin4将在其上运行的端口。我们已经指定docker的端口80将绑定到主机的端口8080。这意味着web应用程序将在主机的端口8080上可用。

图8–在本地服务器上运行PgAdmin4映像
docker容器启动并运行后,您可以转到web浏览器并连接到http://localhost:8080.

图9–运行PgAdmin4 web应用程序
如您所见,PgAdmin4 web应用程序已启动并运行,可在端口8080上使用。您可以使用凭据登录到PgAdmin4控制台。
从PgAdmin4连接到PostgreSQL数据库
登录到PgAdmin4控制台后,最后一步是通过连接到机器上已经运行的PostgreSQL docker实例来创建服务器。为此,我们需要知道PostgreSQL数据库的确切IP地址。我们可以通过检查正在运行的容器来获取该信息。打开新的终端窗口并键入以下命令。
docker inspect pgsql-dev

图10–检查PostgreSQL Docker容器
向下滚动,直到找到“网络”部分。bridge.IPAddress。复制IP地址并将其存储以供以后使用。

图11–获取PostgreSQL Docker容器的IPAddress
现在我们有了PostgreSQL数据库的IP地址,请转到PgAdmin4窗口并创建一个新服务器。使用上一步复制的IP地址和创建容器时使用的密码。点击保存。

图12–连接到PostgreSQL数据库
一旦连接成功,您将看到该实例的仪表板将打开默认的Postgres数据库。

图13–连接到PostgreSQL Docker容器
结论
在本文中,我们了解了如何在Docker上安装PostgreSQL。我们已经了解了如何从存储库中提取PostgreSQL Docker映像,然后创建一个容器,在其中运行和托管数据库应用程序。我们使用命令行界面与PostgreSQL数据库交互。我们还安装了PgAdmin4,这是一个用于管理PostgreSQL实例的工具。PostgreSQL和PgAdmin4都可用于独立安装,但是,使用Docker可以将其容器化,您可以轻松地将捆绑包运送到其他机器进行部署。
要了解有关Docker的更多信息,您可以参考Microsoft的文档和Docker文档。
查看更多
ApexSQL数据库VS代码强大工具是VS代码的扩展,它允许用户连接到MySQL和MariaDB实例,运行查询和显示结果,搜索对象,将查询结果导出为几种标准格式,在Windows、Linux和macOS等现有平台上从对象资源管理器生成DDL和DML脚本。

作者:Aveek Das

Aveek是一位经验丰富的数据和分析工程师,目前在爱尔兰都柏林工作。他的主要技术兴趣领域包括SQL Server、SSIS/ETL、SSAS、Python、Apache Spark、Kafka等大数据工具,以及AWS/Amazon和Azure等云技术。
他是一位多产的作家,在各种技术博客上发表了100多篇文章,包括他自己的博客,并且经常为不同的技术论坛撰稿。
闲暇时,他喜欢业余摄影,主要是街头图像和静物。他的一些作品可以在Instagram上找到。你也可以在LinkedIn上找到他。
原文标题:Connecting to PostgreSQL database from PgAdmin4
原文作者:Aveek Das
原文链接:https://www.sqlshack.com/getting-started-with-postgresql-on-docker/




