LoginSignup
4
3

More than 5 years have passed since last update.

docker for macでコンテナ内からローカルホストにつなぐ方法

Posted at

dockerコンテナ内からlocalhostのMySQLにつなぐときに少しつまずいたので、自分用備忘録。

コンテナ内からローカルホストにつなぐ方法

解決策:DNS名にhost.docker.internalを用いる。

実際に試す方法

ローカルになんらかの方法でmysql-serverがインストールされていて、起動されていることを前提に進める。

まず、mysql-cliの入ったubuntuのコンテナイメージを作成するため、以下のDockerfileを作成。

Dockerfile
# 利用するイメージ
FROM ubuntu

# mysql-clientをインストール
RUN apt-get update && apt-get install -y mysql-client

そして、localhost-testという名前でbuild。

$ docker build -t localhost-test .

以下のコマンドで

$ docker image ls

image listを見てみるとlocalhost-testというイメージができていることが確認できる。

よってコンテナを起動して、中に入ります。

$ docker run -it localhost-test /bin/bash

そして、mysqlコマンドを実行し、ホスト名host.docker.internalでローカルホストのMySQLに繋がるか確認。

# mysql -u root -h host.docker.internal -p
Enter password: [パスワードを入力]

mysql>

このようにローカルホストのMySQLに繋がるはず。 ホスト名をlocalhost127.0.0.1にしても、繋がらないということを確認してみても面白いはずです。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3