Dockerコンテナ間でMySQLに接続する方法


  1. ネットワークの作成: まず、Dockerネットワークを作成します。これにより、コンテナ間で通信するための仮想ネットワークが作成されます。次のコマンドを使用します。
docker network create mynetwork
  1. MySQLコンテナの作成: 次に、MySQLコンテナを作成します。以下のコマンドを使用して、MySQLコンテナを作成し、作成したネットワークに接続します。
docker run -d --name mysql-container --network=mynetwork -e MYSQL_ROOT_PASSWORD=password mysql
  1. アプリケーションコンテナの作成: MySQLに接続するためのアプリケーションコンテナを作成します。アプリケーションコンテナは、MySQLコンテナと同じネットワークに接続する必要があります。以下は、アプリケーションコンテナの作成例です。
docker run -d --name app-container --network=mynetwork your-application-image
  1. アプリケーションの設定: アプリケーション内でMySQLに接続するための設定を行います。以下は、Pythonの例です。
import mysql.connector
# MySQLへの接続設定
config = {
    'user': 'root',
    'password': 'password',
    'host': 'mysql-container',  # MySQLコンテナの名前を指定
    'database': 'mydatabase'  # 接続するデータベース名を指定
}
# MySQLに接続
cnx = mysql.connector.connect(config)
# クエリの実行など、必要な処理を行う
# 接続を閉じる
cnx.close()

上記の例では、MySQLコンテナの名前をmysql-container、接続するデータベース名をmydatabaseとしています。適宜、環境に合わせて設定を変更してください。

これで、Dockerコンテナ間でMySQLに接続することができます。必要に応じて、アプリケーションコンテナ内でのデータベースの操作やクエリの実行などを行ってください。

この記事では、Dockerを使用して別のコンテナに接続する方法を解説しました。コンテナ間通信やデータベースの管理において、Dockerは非常に便利なツールです。