Dockerネットワーキングの基礎
Dockerネットワーキングを理解:bridge、host、overlay、macvlanドライバー。カスタムネットワークの作成、コンテナの接続、DNS検出の有効化、サービスの分離を学びます。
Networks
詳細な説明
Dockerネットワークドライバー
Dockerはそれぞれ異なるシナリオに適した複数のネットワークドライバーをサポートしています。
Bridge(デフォルト)
デフォルトのネットワークドライバー。同じbridge上のコンテナはIPアドレスで通信できます:
# カスタムbridgeネットワークを作成
docker network create my-network
# 同じネットワーク上でコンテナを実行
docker run -d --name api --network my-network my-api
docker run -d --name db --network my-network postgres:16
カスタムbridgeネットワークでは、コンテナは名前で相互にアクセスできます(Docker DNS):
# apiコンテナから:
ping db # dbコンテナのIPに解決される
Hostネットワーク
コンテナがホストのネットワークスタックを直接共有。ポートマッピング不要:
docker run --network host nginx
# Nginxはホストのポート80で直接アクセス可能
ネットワーク管理コマンド
# ネットワーク一覧
docker network ls
# ネットワークを調査(接続されたコンテナを確認)
docker network inspect my-network
# 実行中のコンテナをネットワークに接続
docker network connect my-network existing-container
# ネットワークから切断
docker network disconnect my-network my-container
# 未使用のネットワークを削除
docker network prune
ネットワークエイリアス
ネットワーク内でコンテナに複数のDNS名を付与:
docker network connect --alias database my-network postgres-container
サブネット設定
docker network create \
--driver bridge \
--subnet 172.28.0.0/16 \
--gateway 172.28.0.1 \
my-custom-net
ユースケース
サービスが名前で相互に検出するマイクロサービス通信のセットアップ、セキュリティのためのフロントエンドとバックエンドネットワークの分離、既存インフラとの統合のためのカスタムサブネット設定。