0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerコンテナ内部からホストにアクセスする方法

Posted at

いつ使うのか?

Dockerコンテナを開発環境として、コンテナのホストOSで動いているサービスと通信したいときに、コンテナ内部からホストにアクセスするためのIPアドレスを調べる。

以下は、下記のDockerfileからビルドしたコンテナを具体例として説明する。

FROM ruby:2.6

RUN ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

RUN apt-get update -qq && \
    apt-get install -y vim

docker build --tag example-ruby-dev .

方法

OS X/Winの場合

公式のドキュメントによって、DockerのバージョンがCEの18.03以上の場合、"host.docker.internal"といったDNS名でデフォルトで設定されて。そうすると、下記のコマンドを使って、コンテナを立ち上げた上で、"Ping -a host.docker.internal"などの方法で、ホストのIPアドレスを調べる。

docker container run -it example-ruby-dev /bin/bash

Linuxの場合

Linux版のDockerでは、上述のようなデフォルト設定がまだないので、上記のコマンドを使って、コンテナを立ち上げた上で、以下のコマンドで、ホストのIPアドレスを調べる。

ip route show default | awk '/default/ {print $3}'

後書

ホストにアクセスするIPアドレスをDockerから発行することではなく、最初から特定な値で指定したい場合、@ijufumiさんの記事で述べた設定方法を参考してください。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?