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
に接続できなくなってしまいます。
そこで、ローカルの PC
の hosts
ファイルを編集します。
Mac
の場合は /etc/hosts
に下記のものを追記します。
127.0.0.1 host.docker.internal
最後に
Docker
を使用するようにしても開発時はやはりローカル環境での動作確認などは必須となってくるので、今回のローカル環境の MySQL
への接続方法は忘れないようにしたいですね。
今回のホスト名の設定はローカルホストへ接続するものに対して使用できるので、 MySQL
以外の DB
などにも利用できると思います。
コメント