2.2. コンテナーを使用して、単一のホスト上で複数の MariaDB および MySQL インスタンスを実行する
パッケージから MariaDB または MySQL をインストールする場合、同じホスト上でこれらのサービスのうち 1 つのみ、かつその 1 つのバージョンのみを実行できます。代わりに、コンテナー内でサービスを実行することもできます。
次のような環境を構成できます。
- 同じホスト上で MariaDB または MySQL の複数のインスタンスを実行したい。
- MariaDB と MySQL の両方を同じホストで実行したい。
データベースサーバーのコンテナー名とホストポートは異なっている必要があります。
前提条件
-
container-toolsメタパッケージがインストールされている。
手順
Red Hat カスタマーポータルアカウントを使用して、
registry.redhat.ioレジストリーに認証します。# podman login registry.redhat.ioすでにコンテナーレジストリーにログインしている場合は、このステップをスキップしてください。
コンテナー内で MySQL 8.0 を実行する:
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mysql_root_password> -p <host_port_1>:3306 rhel9/mysql-80このコンテナーイメージを使用する方法の詳細は、Red Hat Ecosystem Catalog を参照してください。
コンテナー内で MySQL 8.4 を実行する:
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mysql_root_password> -p <host_port_2>:3306 rhel9/mysql-84このコンテナーイメージを使用する方法の詳細は、Red Hat Ecosystem Catalog を参照してください。
MariaDB 10.5 をコンテナー内で実行する:
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mariadb_root_password> -p <host_port_3>:3306 rhel9/mariadb-105このコンテナーイメージを使用する方法の詳細は、Red Hat Ecosystem Catalog を参照してください。
MariaDB 10.11 をコンテナー内で実行する:
$ podman run -d --name <container_name> -e MYSQL_ROOT_PASSWORD=<mariadb_root_password> -p <host_port_4>:3306 rhel9/mariadb-1011このコンテナーイメージを使用する方法の詳細は、Red Hat Ecosystem Catalog を参照してください。
クライアントがネットワーク上のデータベースサーバーにアクセスできるように、ファイアウォールでホストポートを開きます。
# firewall-cmd --permanent --add-port={<host_port_1>/tcp,<host_port_2>/tcp,<host_port_3>/tcp,<host_port_4>/tcp,...} # firewall-cmd --reload
検証
実行中のコンテナーに関する情報を表示します。
$ podman psデータベースサーバーに接続し、root としてログインします。
# mysql -u root -p -h localhost -P <host_port> --protocol tcp