[Docker]Docker イメージ実行時に ローカル環境の MySQL に接続する方法

Docker Moby Logo プログラミング

Docker でイメージを実行したときにローカル環境の MySQL に接続したかったんですが、普通に接続先のホスト名を「 localhost 」としているだけじゃ接続できなかったので、対処法をメモしておきます。

動作確認した環境

  • macOS Big Sur : 11.5.2
  • Docker : 20.10.13
  • Docker desktop : 4.6.1

Docker イメージで ローカル環境 の MySQL に接続する方法

DB 接続する際にホスト名を指定すると思うんですが、単純にローカル環境だからと「 localhost 」とすると接続できず、ローカルの環境で Docker イメージを実行した動作確認などができません。
ホスト名に下記の値を設定するとローカル環境の MySQL へ接続することができるようになります。

host.docker.internal

ただ、このように記述すると今度はローカル環境で Docker を使用せず動作確認しようとすると今度は Docker を使用していない場合に MySQL に接続できなくなってしまいます。
そこで、ローカルの PChosts ファイルを編集します。
Mac の場合は /etc/hosts に下記のものを追記します。

127.0.0.1 host.docker.internal

最後に

Docker を使用するようにしても開発時はやはりローカル環境での動作確認などは必須となってくるので、今回のローカル環境の MySQL への接続方法は忘れないようにしたいですね。
今回のホスト名の設定はローカルホストへ接続するものに対して使用できるので、 MySQL 以外の DB などにも利用できると思います。

コメント

モバイルバージョンを終了
タイトルとURLをコピーしました