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环境。
如果你有任何问题或建议,请在下面的评论中告诉我,我很乐意与你跟进。
相关推荐
2015年,openSUSE项目进行了重组,创建了两个版本:Leap,这是一种点分发,Tumbleweed,它是一种滚动分发。 跳 是openSUSE的定期发布,具有保证的稳定性。它是一个常规版本,因为它确实有以常规节奏发布的特定版本(15.2、15.3、15.4)。 风滚草 是一个滚动版本,因为发行版不断更新。这确保了用户能够永久访问最新的Linux软件。 Leap和风滚草的主要区别 当open
XZ tarball中的后门被揭露后,Linux社区深感不安,引发了一系列重大事件。其中甚至包括对systemd进行修改的建议,尽管这是间接的,但对成功利用该漏洞至关重要。 在这场风波之后,Debian已经推迟了其Bookworm系列12.6更新的发布。现在,Ubuntu也采取了类似的措施。 在Canonical最近的一份公告中,用户们得知他们热切期待的发布时间表出现了一些小问题。代号为“Nobl
您可以使用轻松地保持系统的日期和时间的准确性 NTP(网络时间协议) 。它允许您通过网络连接同步计算机时钟并保持其准确性。客户端从远程服务器请求当前时间,并使用它来设置时钟。 如何使用systemd将时间与NTP同步 大多数Linux发行版都采用了systemd,随之而来的是 系统时间同步 守护进程。 这意味着您已经预安装了NTP客户端,不再需要运行完整的NTPD守护进程。相反,内置 系统时间同步
当天的视频 滚动以继续浏览内容 老款iPhone不会像安卓手机那样迅速过时,如果你预算有限,iPhone 13和iPhone 14仍然是你今天能买到的最好的智能手机之一。让我们比较一下,看看哪个更适合你。 价格差异 iPhone 13和iPhone 14的售价都是799美元,就像iPhone 15在2023年的售价一样。不过,你现在可以直接从苹果购买128GB版本的iPhone 13和iPhone
使用双显示器设置,您可能希望为每个显示器设置不同的墙纸,以满足美学、工作效率、创造力、艺术展示等方面的要求。幸运的是,Windows 10和Windows 11可以让你单独设置每个屏幕的背景,这非常容易做到。 如何在Windows 11中使用不同的壁纸 Windows 11提供了一些预装的壁纸设置为您的桌面背景。如果您喜欢自定义背景,您可以使用保存的图片或从互联网下载高分辨率壁纸,并为每个显示器设
回到顶部