#
ドキュメント

Document

自分のための備忘録です。

Docker ネットワーク

ネットワーク作成

  • 同一ネットワークのコンテナはコンテナ名で通信可能
  • Docker Composeの場合はservice名で通信可能

ネットワーク作成

$ docker network create {{network_name}}
  • ネットワークを追加するとbr-で始まるネットワーク・インターフェースNIC)が付与される
  • Dockerホストでifconfigで確認できる

アクセスしたときのNICの優先順位。

ネットワークにコンテナを配置

$ docker run -dit --name {{container_name}} --net {{network_name}} -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4.46
  • 上記はDocker Hubhttpd:2.4.46から作成したコンテナを例に説明している
  • httpd:2.4.46/usr/local/apache2/htdocs/がドキュメントルートであることが明記されている

ping&cURL&ipconfigをインストール

httpd:2.4.46にはping/cURL/ipconfigがインストールされていないので、
ping/cURL/ipconfigなどを使ってDockerホストにexecでログインしてネットワークを確認するために下記でインストールすると便利。

$ apt update -y && apt upgrade -y
$ apt install -y iproute2 iputils-ping curl

ipconfigは、net-toolsに含まれている。

$ apt install net-tools

デフォルトネットワーク

$ docker network ls

Docker のインストールは、自動的に3つのネットワークを作成します。ネットワーク一覧を表示するには docker network ls コマンドを使います。

https://docs.docker.jp/engine/userguide/networking/dockernetworks.html

Docker をインストールした全ての環境には、 docker0 と表示されるブリッジ( bridge )ネットワークが現れます。オプションで docker run --net=<ネットワーク名> を指定しない限り、Docker デーモンはデフォルトでこのネットワークにコンテナを接続します。ホスト上で ifconfig コマンドを使えば、ホストネットワーク上のスタックの一部として、このブリッジを見ることができます。

https://docs.docker.jp/engine/userguide/networking/dockernetworks.html

IPマスカレード

IPマスカレード(=NAPT(Network Address and Port Translation)):LinuxのNAPT実装をIPマスカレードと呼ぶ。

iptablesコマンドでnatを確認できる。

$ sudo iptables --list -t nat -n