2.2. コンテナーを使用して、単一のホスト上で複数の MariaDB および MySQL インスタンスを実行する
パッケージから MariaDB または MySQL をインストールする場合、同じホスト上でこれらのサービスのうち 1 つのみ、かつその 1 つのバージョンのみを実行できます。代わりに、コンテナー内でサービスを実行して、次のシナリオを設定することもできます。
- 同じホスト上で MariaDB または MySQL の複数のインスタンスを実行したい。
- MariaDB と MySQL の両方を同じホストで実行したい。
前提条件
-
podmanパッケージがインストールされている。
手順
Red Hat カスタマーポータルアカウントを使用して、
registry.redhat.ioレジストリーに対して認証します。podman login registry.redhat.io
# podman login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow すでにコンテナーレジストリーにログインしている場合は、このステップをスキップしてください。
使用するコンテナーを起動します。
MariaDB 10.11:
podman run -d --name <container_name_1> -e MYSQL_ROOT_PASSWORD=<password> -p <host_port_1>:3306 rhel10/mariadb-1011
$ podman run -d --name <container_name_1> -e MYSQL_ROOT_PASSWORD=<password> -p <host_port_1>:3306 rhel10/mariadb-1011Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコンテナーイメージを使用する方法の詳細は、Red Hat Ecosystem Catalog を参照してください。
MySQL 8.4:
podman run -d --name <container_name_2> -e MYSQL_ROOT_PASSWORD=<password> -p <host_port_2>:3306 rhel10/mysql-84
$ podman run -d --name <container_name_2> -e MYSQL_ROOT_PASSWORD=<password> -p <host_port_2>:3306 rhel10/mysql-84Copy 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 --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
データベースサーバーに接続し、root としてログインします。
mysql -u root -p -h localhost -P <host_port> --protocol tcp
# mysql -u root -p -h localhost -P <host_port> --protocol tcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 実行中のコンテナーに関する情報を表示します。
podman ps
$ podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow