web-dev-qa-db-ja.com

172.17.0.0の範囲を使用しないようにDockerを構成する

キャプティブポータルとデフォルトのDocker IP範囲の問題により、Dockerに172.17.0.0ではなく、198.18.0.0の範囲を使用させようとしています。これは、私が住んでいる列車で使用されているキャプティブポータルと競合するためです。

the docs に続いて、/etc/docker/daemon.jsonを作成し、それに以下を入れました:

{
    "bip":"198.18.0.0/16"
}

これはdocker0で機能しましたが、他のネットワークには影響を与えていないようです。dockercomposeを使用すると、最初に作成されたネットワークが172.17.0.0になり、クラッシュが再作成されます。

alldockerネットワークのデフォルトサブネットを変更するにはどうすればよいですか(できれば、すべての構成ファイルでカスタムIP範囲を指定する必要がない)。

29
jrtapsell

デフォルトの範囲を再定義することが可能です。

$ docker -v
Docker version 18.06.0-ce, build 0ffa825

Dockerデーモンの構成ファイルを編集または作成します。

# nano /etc/docker/daemon.json

行を追加します。

{
  "default-address-pools":
  [
    {"base":"10.10.0.0/16","size":24}
  ]
}

Dockerdを再起動します。

# service docker restart

結果を確認します。

$ docker network create foo
$ docker network inspect foo | grep Subnet
                    "Subnet": "10.10.1.0/24"

Docker-composeでも動作します。詳細はこちら https://github.com/moby/moby/pull/29376 (マージ)

34
rNix

Dockerがネットワークサブネットを生成する場所は3つあります。

  • デフォルトのブリッジ
  • ユーザー生成のブリッジネットワーク
  • スウォームモードで生成されたオーバーレイネットワーク

デフォルトのブリッジ(「ブリッジ」と呼ばれます)の場合、BIPを指定できます(私はそれがブリッジIPだと思います; ネットワークIPではなくホストIPであることを確認してください ) の中に daemon.jsonファイル。また、ユーザーが生成したブリッジネットワークでは、サブネットプールを定義してそこから選択できます(ユーザーが手動でサブネットを指定しない場合)。これら2つについて、あなたの/etc/docker/daemon.jsonは次のようになります。

{
  "bip": "10.200.0.1/24",
  "default-address-pools":[
    {"base":"10.201.0.0/16","size":24},
    {"base":"10.202.0.0/16","size":24}
  ]
}

上記の各アドレスプール設定は、CIDR範囲とその範囲から割り当てられるサブネットのサイズを定義します。したがって、上記はクラスCネットワーク(/ 24)として割り当てられる2つのクラスB範囲を定義しています。デフォルトのアドレスプールには少なくとも18.06が必要です。この変更を適用するには、Dockerデーモンを再ロードする必要があります(systemctl reload docker)。また、この変更は新しく作成されたユーザーネットワークのみを変更するため、コンテナーを停止し、間違った範囲にある既存のネットワークを削除する必要があります。


18.09で、Dockerは、スウォームモードで生成されたオーバーレイネットワークのアドレス範囲を指定する機能を追加しました。これは、現時点ではスウォームの作成時にのみ実行できます。できれば、docker swarm updateこれらのプールを調整するには:

$ docker swarm init \
  --default-addr-pool 10.202.0.0/16 \
  --default-addr-pool 10.203.0.0/16 \
  --default-addr-pool-mask-length 24
17
BMitch

構成 デフォルトブリッジネットワーク : "…デフォルトブリッジネットワークを構成するには、daemon.jsonでオプションを指定します。いくつかのオプションを指定したdaemon.jsonの例を示します。カスタマイズする必要がある設定のみを指定してください……」

Compose: Specify custom networks : "…デフォルトのアプリネットワークを使用する代わりに、最上位のネットワークキーを使用して独自のネットワークを指定できます。これにより、より複雑なトポロジを作成し、カスタムネットワークを指定できますドライバとオプション。これを使用して、Composeで管理されていない外部で作成されたネットワークにサービスを接続することもできます。

1
poige

少し残忍かもしれませんが、私は単にSudo ifconfig docker0 down使用しようとしているwifiと競合するインターフェースをシャットダウンします。

0
Falko Menge