PostgreSQL是一个免费开源的对象关系数据库管理系统。它已经存在了30多年,并标榜自己是“世界上最先进的开源关系数据库”
与此同时,Docker已成为IT行业的标准,可轻松打包、部署和运行分布式应用程序。它提供了一个极好的机会来容器化您的数据库,并防止系统因本地包安装而产生依赖关系。
但在我们继续之前,让我们先回答几个基本问题。
为什么在Docker上使用PostgreSQL?
在Docker上使用PostgreSQL有几个好处:
- 便携性
:Docker为跨不同系统和平台运行PostgreSQL提供了一个一致的环境。这意味着您可以确保应用程序以相同的方式运行,而不考虑底层基础架构。此外,在不同的环境中测试和调试应用程序更容易,并确保它们在生产中一致运行。
- 隔离
:Docker容器为运行PostgreSQL实例提供了一个独立的环境,因此您可以在同一主机上运行多个实例,而不必担心冲突或依赖关系。
- 可扩展性
:Docker使在任何平台上部署PostgreSQL实例变得容易,并根据需要进行扩展。这允许在管理数据库资源时有更大的灵活性,因为您可以轻松地启动新实例或调整在任何给定时间运行的容器数量。
为什么使用Docker Compose?
Docker Compose是一个允许您运行多容器Docker应用程序的工具。它是一个命令行实用程序,通过使用YAML文件来定义应用程序的服务、网络和卷,简化了编排Docker容器的过程。
换句话说,Docker Compose允许您在一个文件中定义组成应用程序的所有服务,然后使用
码头工人组成
命令来启动、停止和管理这些服务。这使得设置和管理依赖于多个容器的复杂应用程序变得容易。
当我们并行部署PostgreSQL和pgAdmin(PostgreSQL数据库最流行的开源管理工具)时,我们将在本指南中这样做。这将使我们能够立即开始管理我们的PostgreSQL实例,而无需浪费时间搜索其他工具来管理它。
步骤1:安装Docker Compose
据推测,您的系统上已经安装了Docker。如果你不这样做,下面的链接将向你展示如何快速轻松地为你正在使用的发行版安装它,如Ubuntu、Debian、AlmaLinux或Rocky Linux。
另一个重要组件是Docker Compose。请记住,它是与Docker分开提供的。因此,在添加Docker Compose之前,必须先安装Docker;否则,Compose将不起作用。
安装它非常简单,即使它还没有在您的Linux系统上。键入以下命令:
苏多卷曲-L
"https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-$(uname-m)“
-o/usr/local/bin/docker compose
sudo-chmod+x/usr/local/bin/docker compose
代码语言:
JavaScript
(
javascript
)
安装Docker Compose。
在撰写本文时,我们使用的是Docker Compose 2.16.0。要检查是否有新的,请单击此链接并替换“
2.16.0
”将上面第一个命令中的一部分与您想要的命令组合在一起。
接下来,运行下面的命令以确保Docker Compose已正确安装并运行。您应该会收到类似于所示的回复。
docker撰写版本
检查Docker Compose版本。
一切看起来都很好,所以让我们进入实际部分。
步骤2:创建Docker Compose文件
正如指南开头提到的,Docker Compose允许您构建和运行多个容器的堆栈。要使用它,您必须首先创建一个“
docker-compose.yaml
”文件,该文件为应用程序配置容器。然后,您可以使用单个命令,例如“
码头工人组成
“启动所有容器并将它们连接在一起。
因此,让我们为容器化堆栈创建描述PostgreSQL和pgAdmin服务的主文件。首先,我们将使用自己选择的名称创建一个目录,例如,“
pg
,“然后,使用您喜欢的文本编辑器,创建一个名为”
docker-compose.yaml
“在里面:
mkdir
pg
&&
cd
pg
vim
码头工人组成
.yaml
代码语言:
CSS
(
css
)
然后,将以下内容添加到其中:
版本
"3.8"
服务
:
进展后:
图像:postgres
重新启动
总是
端口
:
-
"5432:5432"
环境
:
POSTGRES_USER:POSTGRES
POSTGRES_PASSWORD
:mypgdbpass
体积
:
-进度后数据:
/var/
lib/postgresql/data
pgadmin
:
图片:dpage/pgadmin4
重新启动
总是
端口
:
-
"5050:80"
环境
:
PGADMIN_DEFAULT_EMAIL:[电子邮件保护]
PGADMIN_DEFAULT_PASSWORD
:mypgadminpass
体积
:
-pgadmin_data:
/var/
lib/pgadmin
依赖
:
-postgres
体积
:
进度后数据:
pgadmin_data:
代码语言:
JavaScript
(
javascript
)
保存并关闭文件。如果你不清楚它的内容,不要担心。现在我将对其进行解释,让我们分解一下这个语法。
- 服务
:定义Docker需要运行的两个服务,”
postgres
和
pgadmin
.”
- 形象
:指定将下载并用于我们的服务的Docker Hub映像。我们不为它们应用标签,因为我们想使用最新的版本。但是,如果您需要一个特定的,您可以查看PostgreSQL和pgAdmin可用的并使用它,例如,将其指定为“
后gres:15.2阿尔卑斯
.”
- 重新启动
:将Docker容器配置为在意外停止时始终重新启动。
- 端口
:将主机上的TCP端口映射到容器端口。这样,容器化服务就暴露在容器外部,并且可以远程访问。
- 环境
:设置应用程序身份验证和设置的环境变量。请确保更改“
POSTGRES_PASSWORD
“PostgreSQL的环境”
postgres
“admin用户和pgAdmin(”
PGADMIN_DEFAULT_EMAIL
和
PGADMIN_DEFAULT_PASSWORD
”)。
- 体积
:为应用程序文件装载命名的Docker卷以持久化数据。否则,当容器重新启动时,数据将丢失。
- 依赖
:允许您按顺序运行服务。在我们的案例中,“
pgadmin
“服务要到”
postgres
“没有启动和运行。
步骤3:将PostgreSQL和pgAdmin作为Docker容器运行
最后,我们准备使用Docker Compose运行PostgreSQL和pgAdmin。要执行此操作,请从“
pg
“您所在的目录”
docker-compose.yaml
”文件驻留。
在后台部署和运行容器:
docker组合-d
图像将开始下载。整个过程可能需要几分钟时间,具体取决于您的互联网连接速度。最后,您应该会看到一个类似于下面的屏幕,通知您所有容器都已成功创建并启动。
将PostgreSQL和pgAdmin作为Docker容器运行。
当然,使用Docker Compose的PostgreSQL和pgAdmin容器实际启动之前的延迟将只是第一次,因为需要从互联网上下载图像。由于Docker镜像在您的Linux系统上本地可用,因此所有后续运行都需要几秒钟的时间。
步骤4:将pgAdmin连接到PostgreSQL容器
打开浏览器并将其指向“
http://localhost:5050
或
http://ip-address:5050
“在运行PostgreSQL和pgAdmin Docker容器的服务器上。
pgAdmin登录页面将向您致意。输入您指定的用户名和密码作为“
PGADMIN_DEFAULT_EMAIL
和
PGADMIN_DEFAULT_PASSWORD
“中的变量”
docker-compose.yaml
文件
pgAdmin 4登录页面。
接下来,单击“
添加新服务器
.”
将新服务器添加到pgAdmin。
将打开一个新的模式窗口,您可以在其中配置PostgreSQL服务器连接设置。首先,在“
名称
领域
向PostgreSQL服务器添加新连接。
然后选择“
联系
“选项卡。在”
主机名/地址
字段中定义的Docker的PostgreSQL容器的服务的名称
docker-compose.yaml
文件在我们的案例中,它是“
postgres
。“最后,输入给定的密码,作为的值”
POSTGRES_PASSWORD
“并通过单击保存您的更改”
拯救
按钮
向PostgreSQL服务器添加新连接。
该应用程序将连接到PostgreSQL Docker容器,您可以使用pgAdmin功能丰富的web界面来监控和管理数据库服务器。
pgAdmin成功连接到Docker PostgreSQL容器。
或者,您可以通过将其附加到容器并运行
psql
命令直接与PostgreSQL数据库交互。要执行此操作,必须首先输入容器。但是,你需要知道它的名字。要查找它,请键入:
码头工人ps
正在查找Docker容器的名称。
在所示的示例中,我们的PostgreSQL容器名为“
pg-postgres-1
。“您也可以使用容器ID而不是名称,在所示的示例中为”
37c52cf79923
。”要直接连接到它,我们需要运行以下操作:
docker exec-it pg-postgres-1 psql-U postgres
这提供了完整的PostgreSQL命令行界面,可以使用所有熟悉的命令和标志。
在Docker容器内运行psql命令。
最后,让我带您了解管理容器化PostgreSQL/pgAdmin堆栈的基本Docker Compose命令。
基本Docker Compose命令
您可以在实践中使用的基本Docker Compose命令如下所示。记得从“
pg
“目录,其中”
docker-compose.yaml
”驻留。
列出所有Docker容器
要查看当前正在部署中运行的所有容器的列表,请键入:
docker compose ps
列出所有Docker容器。
停止所有Docker容器
要停止所有在后台运行的docker容器,请使用如下所示的命令:
docker组合停止
停止所有Docker容器。
当然,您只能停止其中一个容器,而不能停止所有容器。跑
docker组合停止
“后跟中定义的服务名称”
docker-compose.yaml
文件注意的不是容器名称,而是服务名称。
例如,要停止PostgreSQL容器,用“
postgres
“服务名称,请键入以下内容:
docker compose stop postgres
停止单个容器。
同样,您可以稍后通过执行“
docker compose start postgres
.”
启动所有Docker容器
从您的项目目录(“
pg
“),通过运行如下所示的命令启动应用程序:
docker撰写开始
启动所有Docker容器。
查看容器的日志
“
码头工人撰写日志
”命令显示服务的日志输出。例如,运行后面跟有服务名称的命令来查看PostgreSQL容器日志。
docker撰写日志postgres
此外,如果您想聚合堆栈中每个容器的日志并实时跟踪其中发生的事情,请键入:
docker compose logs-f
停止并移除所有容器
以下命令停止并删除以前由“
码头工人组成
命令
码头工人冷静下来
停止并销毁容器。
此外,如果您想停止并删除容器及其关联的Docker映像,请使用以下命令:
docker冷静下来--rmi-all
停止并移除容器及其Docker映像。
如果除了停止和删除容器之外,还希望删除Docker卷中永久存储的数据,请执行以下操作:
docker compose down-v
停止并移除容器及其持久数据。
注意请注意,您将以这种方式丢失所有数据。在这种情况下,PostgreSQL数据库(“
pgadmin_data
体积因此,在执行此命令之前请三思。
结论
Docker彻底改变了开发人员部署和管理应用程序的方式。使用它最重要的用例之一是易于部署和访问容器中构建的应用程序,而无需担心依赖关系和安装。凭借其提供一致环境和简化部署过程的能力,Docker已成为开发人员和系统管理员的首选解决方案。
本教程向您展示了如何使用Docker Compose在Docker容器中快速运行PostgreSQL和pgAdmin管理工具。按照本指南中概述的逐步说明,您可以在几分钟内启动并运行PostgreSQL和pgAdmin环境。
如果你有任何问题或建议,请在下面的评论中告诉我,我很乐意与你跟进。
相关推荐
对于开源和自托管爱好者来说,Ente可能不是你以前听过的名字。这完全没关系,所以让我们花点时间介绍一下它是什么。 这是一款安全、基于云的加密照片应用程序,旨在保护您的照片和视频。Ente提供端到端加密、自动备份、协作相册、库同步、一键导入、锁定照片、私人共享等功能。 该应用程序旨在成为谷歌照片或iCloud照片等大型科技照片存储服务的隐私友好替代品,用于组织和备份您的记忆,确保它们以只有您才能查看
在过去的一年里,openSUSE经历了一次重大的转变,随着可适配Linux平台(ALP)的推出,开启了新的篇章。这种焦点的转变改变了他们开发的产品和迎合的受众的轨迹。 在最近的公告之后,很明显,openSUSE的知名模特Leap&Tumbleweed的时代即将结束。这就是它的全部内容。 飞跃15.6:最后一章 根据官方路线图,openSUSE Leap 15.6将于今年6月发布。它将是目前
Linux终端是一个强大的实用程序,它为您如何在PC上执行任务提供了巨大的潜力。它让您访问系统的各个方面,并通过几个按钮,您可以有效地指示您的计算机做什么。 无论您是经验丰富的Linux管理员还是普通用户,掌握Linux终端都可以极大地提高您的生产力。以下是一些Linux终端提示和技巧,它们将帮助您快速有效地完成任务。 使用Linux终端的好处 了解如何使用Linux终端将为您如何与PC交互打开新
Nitrux是一个基于Debian不稳定分支的面向桌面的不可变Linux发行版。它的特点是一个名为NX desktop的自定义桌面环境,建立在KDE Plasma 5之上。 在上一个3.2.0版本发布两个多月后,开发团队刚刚宣布Nitrux 3.3.0的全球可用性,代号为“ab”,提供了大量最新的软件更新、错误修复、性能增强和开箱即用的全面硬件支持。 Nitrux 3.3.0“ab”亮点 此版本的
Rhino Linux是一个相对较新的基于Ubuntu开发分支的发行版。但是,尽管它的根是Ubuntu,但你几乎找不到任何东西能让你想起Ubuntu的视觉标识或GUI工具。 相反,该发行版使用Xfce桌面环境作为基础来构建其独特的身份。由此,它开发了自己的桌面体验,名为Unicorn。 Rhino的另一个关键特性是它的滚动发布模型,它不断更新,而不是标准的发布周期。许多人觉得这些功能很有吸引力,信
回到顶部