別のコンテナから MySQL コンテナに接続する
MySQL を実行し、ポート 3306 を公開する Docker コンテナを設定しましたが、どうすればよいでしょうか?別のコンテナからそのデータベースにアクセスしますか?
IP アドレスを使用
最初に、MySQL コンテナの IP アドレス (172.17.0.2) を使用して接続しようとしました。これは機能しますが、IP アドレスは変更される可能性があるため理想的ではありません。
ユーザー定義のネットワーク
より良い方法は、ユーザー定義のネットワークを使用してコンテナを接続することです。ネットワークを作成し、MySQL コンテナと PHP コンテナの両方をそれに接続できます。
docker network create my_network
コンテナのリンク
同じネットワーク上で両方のコンテナを実行し、ネットワークを提供します--network フラグを使用した名前:
docker run -d --name php_container --network my_network my_php_image docker run -d --name mysql_container --network my_network my_mysql_image
そのネットワーク上のコンテナ内で、コンテナ名を解決し、ホスト名を使用して接続できます。たとえば、PHP コンテナから、以下を使用して MySQL に接続できます。
$mysqli = new mysqli("mysql_container", "mattia", "prova", "prova");
結論
ユーザー定義のネットワークは、より堅牢で柔軟な接続方法を提供します。 Docker のコンテナ。コンテナ名をホスト名として使用すると、アクセスが簡素化され、IP アドレスに依存する必要がなくなります。
以上がDocker の別のコンテナから MySQL コンテナに接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。