「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 内部通信の話(外部公開は、を使用)。
- linksを使っているサンプルが多いが、昨今、非推奨らしい。
詳細 †
NIC等 †
ホスト毎 †
ホストのNICや、ルータ、
- 物理NIC(eth0)
- ホストのNIC
ホストがVMだったら仮想NICでは?
- Netfilter(iptables)
- ファイアウォールやルータ
- NAPT(ホストの8080 → コンテナの80)
- 仮想ブリッジ(docker0)
- Dockerがデフォルトで作成する仮想スイッチ
- NetfilterとコンテナのNICとを繋いでいる。
コンテナ毎 †
コンテナのNIC
- 仮想NIC(veth xxx)
- Veth pair (Virtual ethernet tunnel pair)
- Linux には、OpenVZ由来の Virtual Ethernet Tunnel (veth) というものがある。
名前が示す通り、仮想的な Ethernet Interface の組を作成して、繋いでくれる。
links †
- [サービス名](または[エイリアス名])でコンテナにアクセスできる。
- version2ではDockerコンポーズ・ファイルに書かれた全てのサービス間に
自動的にリンクを張る仕様になったため、linksとわざわざ書く必要がなくなった。
depends_on †
- depends_onはコンテナの作成順序と依存関係を決める。
- version2で自動リンクされるので、depends_onだけでOKに。
networks †
- 昨今、linksは、非推奨らしい。
- ブリッジ・ネットワークを作成し、そこにコンテナを参加させる。
- これにより、別々のDockerコンポーズ・ファイルのコンテナに接続可能になる。
※ 具体的にはコチラ
ホストへの接続 †
environment:
GRANT_SUDO: "yes"
user: root
コンテナのターミナルに入る。 †
>docker exec -it [ContainerID] /bin/bash
ホストOSのIPアドレスを取得する。 †
# cat /etc/hosts | awk 'END{print $1}' | sed -r -e 's/[0-9]+$/1/g'
※ WSL2だと、違うっぽい。
※ 旧 Docker for Windowsでどうだったか?は不明。
その昔は、「10.0.75.1 (DockerNAT)」だった気がするが、その後、また、色々と変わった。
pingやncやcurlでアクセスしてみる。 †
- ホストOSのネットワークに、
- pingする。
- ncやcurlでアクセスしてみる。
参考 †
参考 †
Qiita †