docker network

Dockerのネットワークドライバ

Dockerでは、コンテナ間や外部との通信方式を制御するために、用途に応じた ネットワークドライバ が提供されている。主なネットワークドライバには、bridge、host、none、overlay があり、単一ホストでの利用、複数ホスト間通信、外部ネットワークとの直接接続など、利用目的に応じて使い分ける。

ドライバコンテナ間通信外部アクセス
【推奨】
bridge(DNS名前解決)
コンテナ名で通信可能ポートマッピングが必要
bridge(デフォルト)IPアドレスで通信可能ポートマッピングが必要
hostlocalhost経由で通信可能直接可能
none不可(完全隔離)不可(完全隔離)
overlay可能(複数ホスト間で可能)設定次第
bridge:アプリ開発 host:高性能 none:バッチ処理 overlay:複数ホスト間連携

docker network コマンド

docker network create コマンド
 【処理】 ネットワークを作成する
 【書式】 docker network create [オプション] N/W名

オプション内容
create -d / --driver
【例】-d overlay
ドライバー指定(デフォルト: bridge)
create --subnet
【例】--subnet 10.0.1.0/24
サブネット指定(CIDR形式)
create --gateway
【例】--gateway 10.0.1.1
ゲートウェイ指定
create --ip-range
【例】--ip-range 10.0.1.0/25
IPアドレス範囲指定
create --label
【例】--label env=dev
ラベル付与
create --internal外部アクセス遮断
create --attachable手動接続可能

docker network ls コマンド
 【処理】 ネットワーク一覧を表示する
 【書式】 docker network ls [オプション]

オプション内容
ls -q / --quietIDのみ表示
ls -f / --filter
【例】-f driver=bridge
フィルタ条件
ls --format
【例】--format "table {{.Name}}\t{{.Driver}}"
出力フォーマット指定
ls --no-trunc情報を省略しない

docker network inspect コマンド
 【処理】 ネットワークの詳細情報を表示する
 【書式】 docker network inspect [オプション] N/W名

オプション内容
inspect -f / --format
【例】-f '{{.Subnet}}'
出力フォーマット指定
inspect -v / --verbose詳細情報表示

docker network connect コマンド
 【処理】 コンテナをネットワークに接続する
 【書式】 docker network connect [オプション] N/W名 コンテナ名

オプション内容
connect --ip
【例】--ip 172.20.0.10
IPアドレス指定
connect --ip6
【例】--ip6 2001:db8::10
IPv6アドレス指定
connect --alias
【例】--alias webapp
ネットワークエイリアス
connect --link
【例】--link db:database
コンテナリンク(非推奨)

docker network disconnect コマンド
 【処理】 コンテナをネットワークから切断する
 【書式】 docker network disconnect [オプション] N/W名 コンテナ名

オプション内容
disconnect -f / --force強制切断

docker network rm コマンド
 【処理】 ネットワークを削除する
 【書式】 docker network rm [オプション] N/W名

docker network prune コマンド
 【処理】 未使用のネットワークを削除する
 【書式】 docker network prune [オプション]

オプション内容
prune -f / --force確認なしで削除
prune --filter
【例】--filter "until=24h"
フィルタ条件