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

ユースケース

サービスが名前で相互に検出するマイクロサービス通信のセットアップ、セキュリティのためのフロントエンドとバックエンドネットワークの分離、既存インフラとの統合のためのカスタムサブネット設定。

試してみる — Docker CLI Reference

フルツールを開く