3.2. コンテナーを使用して単一ホスト上で複数の PostgreSQL インスタンスを実行する
パッケージから PostgreSQL をインストールする場合、同じホスト上で実行できるのは 1 つのバージョンのみです。複数のインスタンスを実行するか、異なるバージョンの PostgreSQL を実行するには、サービスをコンテナー内で実行します。
前提条件
-
podman
パッケージがインストールされている。
手順
Red Hat カスタマーポータルアカウントを使用して、
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 このコンテナーイメージを使用する方法の詳細は、Red Hat Ecosystem Catalog を参照してください。
重要2 つのデータベースサーバーのコンテナー名とホストポートが異なっている必要があります。
クライアントがネットワーク上のデータベースサーバーにアクセスできるように、ファイアウォールでホストポートを開きます。
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