3.2. 使用容器在单个主机上运行多个 PostgreSQL 实例
如果您从软件包安装 PostgreSQL,则只能在同一主机上运行它的一个版本。TU 运行 PostgreSQL 的多个实例或不同的版本,您可以在容器中运行服务。
先决条件
-
podman
软件包已安装。
流程
使用您的红帽客户门户网站帐户认证到
registry.redhat.io
注册中心:podman login registry.redhat.io
# podman login registry.redhat.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您已登录到容器注册中心,请跳过这一步。
启动您要使用的容器。对于每个容器,请输入:
podman run -d --name <container_name> -e POSTGRESQL_USER=<user_name> -e POSTGRESQL_PASSWORD=<password> -p <host_port_1>:5432 rhel10/postgresql-16
$ podman run -d --name <container_name> -e POSTGRESQL_USER=<user_name> -e POSTGRESQL_PASSWORD=<password> -p <host_port_1>:5432 rhel10/postgresql-16
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关使用此容器镜像用法的更多信息,请参阅 红帽生态系统目录。
重要容器名称和两个数据库服务器的主机端口必须不同。
要确保客户端可以访问网络上的数据库服务器,请在防火墙中打开主机端口:
firewall-cmd --permanent --add-port={<host_port_1>/tcp,<host_port_2>/tcp,...} firewall-cmd --reload
# firewall-cmd --permanent --add-port={<host_port_1>/tcp,<host_port_2>/tcp,...} # firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
连接到数据库服务器,并以 root 用户身份登录:
psql -u postgres -p -h localhost -P <host_port> --protocol tcp
# psql -u postgres -p -h localhost -P <host_port> --protocol tcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示正在运行的容器的信息:
podman ps
$ podman ps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow