ホームページ >データベース >mysql チュートリアル >コンテナ構成を変更せずにローカル MySQL データベースを Docker コンテナに接続するにはどうすればよいですか?
Docker 化されたセットアップを使用してアプリケーションを運用環境に移行する場合、コンテナベースの使用を避けたい場合があります。データベース。この記事では、コンテナのデータベース構成を変更せずに、ローカルでホストされている MySQL データベースを Docker コンテナ内で実行されているアプリケーションに接続する方法について説明します。
提供される docker-compose .yml ファイルには、コンテナ内の MySQL データベースを初期化する「app-db」という名前のサービスが含まれています。代わりにアプリケーションを外部 MySQL データベースに接続するには:
<code class="yaml">version: '3' services: web-app: build: context: . dockerfile: web-app/Dockerfile ports: - 8080:8080 environment: - MYSQL_HOST=host.docker.internal - MYSQL_PORT=3306 - MYSQL_USER=username - MYSQL_PASSWORD=password - MYSQL_DATABASE=database_name</code>
Linux システムの場合、Docker コンテナはホストのネットワーク構成から分離されます。 。 Web アプリケーションが host.docker.internal アドレスを解決できるようにするには、コンテナーを「--add-host host.docker.internal:host-gateway」パラメーターで開始する必要があります:
<code class="sh">docker run --add-host host.docker.internal:host-gateway ...</code>
これパラメーターにより、コンテナーが host.docker.internal をホストの IP アドレスに解決できることが保証されます。
変更された docker-compose.yml とコンテナー構成を適切に配置すると、 Web アプリケーションは、環境変数で指定されているように、ローカルでホストされている MySQL データベースに接続できる必要があります。
以上がコンテナ構成を変更せずにローカル MySQL データベースを Docker コンテナに接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。