network create

Usage: docker network create [OPTIONS]

ネットワークの作成

オプション:
--aux-address value

追加 ipv4 または ipv6 アドレスが使うネットワーク・ドライバ (デフォルト map[])

-d, --driver string

ネットワーク・ブリッジまたはオーバレイを管理するドライバ (デフォルト "bridge") --gateway value マスタ・サブネット用の ipv4 または ipv6 ゲートウェイ (default []) --help 使い方の表示 --internal ネットワークから外部へのアクセスを制限 --ip-range value サブ・レンジからコンテナの IP アドレスを割り当て (default []) --ipam-driver string IP アドレス管理用ドライバ (デフォルト "default") --ipam-opt value カスタム IPAM ドライバ固有のオプションを指定 (デフォルト map[]) --ipv6 IPv6 ネットワーク機能の有効か --label value ネットワークにメタデータを指定 (デフォルト [])

-o, --opt value

ドライバ用のオプションを指定 (デフォルト map[]) --subnet value ネットワーク・セグメントを表すサブネットを CIDR 形式で指定 (default [])

新しいネットワークを作成します。 DRIVER には bridgeoverlay を指定できます。どちらも内蔵のネットワーク・ドライバです。サードパーティー製のドライバをインストールするか、カスタム・ネットワーク・ドライバを組み込むのであれば、同様に DRIVER で指定できます。 --driver オプションを指定しなければ、コマンドは自動的に bridge ネットワークを作成します。Docker エンジンをインストールしたら、 bridge ネットワークを自動的に構築します。このネットワークは従来の docker0 ブリッジに相当します。新しいコンテナを dockerrun で起動したら、自動的にこのブリッジ・ネットワークに接続します。このデフォルト・ブリッジ・ネットワークは削除できませんが、新しいブリッジを networkcreate コマンドで作成できます。

$ docker network create -d bridge my-bridge-network

ブリッジ・ネットワークは、単一の Docker エンジン上でネットワークを分離(isolate)します。ネットワークを作成する時、 overlay (オーバレイ)ネットワークであれば、Docker エンジンが動作する複数のホスト上に渡ることも可能です。 bridge ネットワークとは異なり、オーバレイ・ネットワークを作成するには、いくつかの条件が必要です。

  • キーバリュー・ストアにアクセスできること。エンジンがサポートしているキーバリュー・ストアは Consul、Etcd、ZooKeeper(分散ストア)です。

  • クラスタの各ホストが、キーバリュー・ストアと接続できること。

  • 各ホスト上の Docker エンジンの daemon が、クラスタとしての適切な設定をすること。

dockerdoverlay ネットワークをサポートするために必要なオプションは、次の通りです。

  • --cluster-store

  • --cluster-store-opt

  • --cluster-advertise

各オプションや設定方法の詳細については、 マルチホスト・ネットワークを始めましょう をご覧ください。

もう1つの良いアイディアとしては、これらの設定を行わなくても、Docker Swarm でネットワークも管理できるクラスタの管理もできます。Swarm は知的なディスカバリとサーバ管理を提供しますので、実装にあたっての手助けとなるでしょう。

overlay ネットワークに必要な準備が整った後は、クラスタ上にあるホストのどれかで次のようなネットワーク作成コマンドを実行します。

$ docker network create -d overlay my-multihost-network

ネットワーク名はユニークにする必要があります。Docker デーモンは名前の衝突を避けようとしますが、保証されません。ユーザ・リポジトリも名前の衝突を避けようとします。

コンテナに接続

コンテナの起動時に --net フラグを指定したら、ネットワークに接続します。 busybox コンテナが mynet ネットワークに接続するには、次のようにします。

$ docker run -itd --net=mynet busybox

既に実行中のコンテナに対してネットワークを接続したい場合は、 dockernetworkconnect サブコマンドを使います。

同じネットワークに複数のコンテナが接続できます。接続したら、コンテナは他のコンテナの IP アドレスか名前で通信できるようになります。 overlay ネットワークやカスタム・プラグインは、複数のホスト間の接続サポートしていますので、コンテナは同じマルチホスト・ネットワークに接続できるだけでなく、異なった Docker エンジンから起動された環境でも、同様に通信できます。

コンテナをネットワークから切断するには、 dockernetworkdisconnect コマンドを使います。

高度なオプションの設定

ネットワークの作成時、デフォルトではエンジンはネットワークのサブネットワークが重複しないようにします。サブネットワークは既存のネットワークの下位にはありません。純粋に IP アドレスを割り当てるためです。このデフォルトを上書きするには、 --subnet オプションを使ってサブネットワークの値を直接指定します。

docker network create --driver=bridge --subnet=192.168.0.0/16 br0

更に、他にも --gateway--ip-range--aux-address オプションが利用可能です。

$ docker network create \ --driver=bridge \ --subnet=172.28.0.0/16 \ --ip-range=172.28.5.0/24 \ --gateway=172.28.5.254 \ br0

--gateway フラグを省略したら、エンジンは対象ネットワークの範囲内から1つ選びます。 overlay ネットワークとネットワーク・ドライバ・プラグインの場合は、複数のサブネットワークの作成をサポートしています。

$ docker network create -d overlay \ --subnet=192.168.0.0/16 \ --subnet=192.170.0.0/16 \ --gateway=192.168.0.100 \ --gateway=192.170.0.100 \ --ip-range=192.168.1.0/24 \ --aux-address a=192.168.1.5 --aux-address b=192.168.1.6 --aux-address a=192.170.1.5 --aux-address b=192.170.1.6 my-multihost-network

サブ・ネットワークが重複しないように気を付けてください。重複したらネットワークの作成に失敗し、エンジンはエラーを表示します。

ブリッジ・ドライバのオプション

カスタム・ネットワークの作成時、デフォルトのネットワーク・ドライバ(例: bridge )では追加のオプションを指定できます。以下のオプション指定は、 docker デーモンで docker0 ブリッジ用のフラグを指定するのと同等です。

オプション

同等

説明

com.docker.network.bridge.name

Linux ブリッジを作成する時に使うブリッジ名

com.docker.network.bridge.enable_ip_masquerade

--ip-masq

IP マスカレードの有効化

com.docker.network.bridge.enable_icc

--icc

内部におけるコンテナの接続性を、有効化または無効化

com.docker.network.bridge.host_binding_ipv4

--ip

コンテナのポートをバインドする時の、デフォルト IP アドレスを指定

com.docker.network.driver.mtu

--mtu

コンテナのネットワーク MTU を指定

以下の引数は dockernetworkcreate 実行時、あらゆるネットワーク・ドライバで指定できます。ほとんどが dockerd で指定する項目と同等です。

オプション

同等

説明

--geteway

マスタ・サブネットに対する IPv4 または IPv6 ゲートウェイ

--ip-range

--fixed-cidr

範囲内で割り当てる IP アドレス

--internal

外部ネットワークに対する接続を制限

--ipv6

--ipv6

IPv6 ネットワーク機能を有効化

--subnet

--bip

ネットワーク用のサブネット

例えば、ポート公開用に使う IP アドレスを割り当てるには、 -o--opt オプションを使います。

docker network create -o "com.docker.network.bridge.host_binding_ipv4"="172.19.0.1" simple-network

内部ネットワーク(internal)モード

コンテナを overlay ネットワークに接続する時、デフォルトでは外部への接続性を提供するためブリッジ・ネットワークにも接続します。外部された隔離された overlay ネットワークを作成したい場合は、 --internal オプションを使います。