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 2.16.0。要检查是否有新的,请单击此链接并替换“
2.16.0
”将上面第一个命令中的一部分与您想要的命令组合在一起。
接下来,运行下面的命令以确保Docker Compose已正确安装并运行。您应该会收到类似于所示的回复。
docker撰写版本
一切看起来都很好,所以让我们进入实际部分。
步骤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
图像将开始下载。整个过程可能需要几分钟时间,具体取决于您的互联网连接速度。最后,您应该会看到一个类似于下面的屏幕,通知您所有容器都已成功创建并启动。
当然,使用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
文件
接下来,单击“
添加新服务器
.”
将打开一个新的模式窗口,您可以在其中配置PostgreSQL服务器连接设置。首先,在“
名称
领域
然后选择“
联系
“选项卡。在”
主机名/地址
字段中定义的Docker的PostgreSQL容器的服务的名称
docker-compose.yaml
文件在我们的案例中,它是“
postgres
。“最后,输入给定的密码,作为的值”
POSTGRES_PASSWORD
“并通过单击保存您的更改”
拯救
按钮
该应用程序将连接到PostgreSQL Docker容器,您可以使用pgAdmin功能丰富的web界面来监控和管理数据库服务器。
或者,您可以通过将其附加到容器并运行
psql
命令直接与PostgreSQL数据库交互。要执行此操作,必须首先输入容器。但是,你需要知道它的名字。要查找它,请键入:
码头工人ps
在所示的示例中,我们的PostgreSQL容器名为“
pg-postgres-1
。“您也可以使用容器ID而不是名称,在所示的示例中为”
37c52cf79923
。”要直接连接到它,我们需要运行以下操作:
docker exec-it pg-postgres-1 psql-U postgres
这提供了完整的PostgreSQL命令行界面,可以使用所有熟悉的命令和标志。
最后,让我带您了解管理容器化PostgreSQL/pgAdmin堆栈的基本Docker Compose命令。
基本Docker Compose命令
您可以在实践中使用的基本Docker Compose命令如下所示。记得从“
pg
“目录,其中”
docker-compose.yaml
”驻留。
列出所有Docker容器
要查看当前正在部署中运行的所有容器的列表,请键入:
docker compose ps
停止所有Docker容器
要停止所有在后台运行的docker容器,请使用如下所示的命令:
docker组合停止
当然,您只能停止其中一个容器,而不能停止所有容器。跑
docker组合停止
“后跟中定义的服务名称”
docker-compose.yaml
文件注意的不是容器名称,而是服务名称。
例如,要停止PostgreSQL容器,用“
postgres
“服务名称,请键入以下内容:
docker compose stop postgres
同样,您可以稍后通过执行“
docker compose start postgres
.”
启动所有Docker容器
从您的项目目录(“
pg
“),通过运行如下所示的命令启动应用程序:
docker撰写开始
查看容器的日志
“
码头工人撰写日志
”命令显示服务的日志输出。例如,运行后面跟有服务名称的命令来查看PostgreSQL容器日志。
docker撰写日志postgres
此外,如果您想聚合堆栈中每个容器的日志并实时跟踪其中发生的事情,请键入:
docker compose logs-f
停止并移除所有容器
以下命令停止并删除以前由“
码头工人组成
命令
码头工人冷静下来
此外,如果您想停止并删除容器及其关联的Docker映像,请使用以下命令:
docker冷静下来--rmi-all
如果除了停止和删除容器之外,还希望删除Docker卷中永久存储的数据,请执行以下操作:
docker compose down-v
注意请注意,您将以这种方式丢失所有数据。在这种情况下,PostgreSQL数据库(“
pgadmin_data
体积因此,在执行此命令之前请三思。
结论
Docker彻底改变了开发人员部署和管理应用程序的方式。使用它最重要的用例之一是易于部署和访问容器中构建的应用程序,而无需担心依赖关系和安装。凭借其提供一致环境和简化部署过程的能力,Docker已成为开发人员和系统管理员的首选解决方案。
本教程向您展示了如何使用Docker Compose在Docker容器中快速运行PostgreSQL和pgAdmin管理工具。按照本指南中概述的逐步说明,您可以在几分钟内启动并运行PostgreSQL和pgAdmin环境。
如果你有任何问题或建议,请在下面的评论中告诉我,我很乐意与你跟进。
在首次引入 Windows 大约 41 年后,记事本终于更新了自动更正和拼写检查功能。这家科技巨头于今年 3 月推出了拼...
大鱼 2024 年 7 月 9 日
在Ubuntu及其他基于Debian的Linux发行版中,软件包管理是系统维护的一个重要方面。apt和apt-get是两...
大鱼 2024 年 6 月 26 日
远程桌面是一种允许您远程接管和使用另一台计算机的服务。在Ubuntu中,可以在图形客户端机器上启用它来控制主机。此功能对...
大鱼 2024 年 5 月 7 日
利用当天的视频 苹果2024年5月的“放开”活动标志着iPad系列的一个重要里程碑,该公司推出了自成立以来最重大的升级。...
大鱼 2024 年 5 月 19 日
已升级到新iPhone,是否要从旧设备中移动所有照片?或者你只是想从别人的iPhone上转移照片?以下是在两部iPhon...
大鱼 2024 年 5 月 19 日