DockerをMacで使用している際に、docker-compose upなどのコマンドを実行すると、以下のようなエラーメッセージが表示されることがあります。
[+] Running 1/0
✘ Network xxx_default Error 0.0s
failed to create network xxx_default: Error response from daemon: all predefined address pools have been fully subnetted
このエラーは、Dockerが新しいネットワークを作成しようとした際に、利用可能なIPアドレスプールがすべて既存のネットワークに割り当てられてしまい、新しいネットワークを作成できなかったことを意味します。
エラーメッセージの詳細
failed to create network xxx_default: Error response from daemon: all predefined address pools have been fully subnetted
Dockerデーモンがネットワークの作成を試みたが、割り当てるIPアドレス範囲がないために失敗した
考えられる原因
このエラーが発生する主な原因は、以下のとおりです。
- Dockerネットワークの過多
Mac上で多数のDockerネットワークが作成されており、それぞれがIPアドレス範囲を使用しているため、利用可能なアドレスプールが枯渇している。 - デフォルトIPアドレスプールの制限
Dockerデーモンがデフォルトで使用するIPアドレスプールが小さく、多数のネットワークを作成するとすぐに枯渇してしまう。
解決策
以下の解決策を順番に試すことで、この問題を解決できるはずです。
1. 未使用のDockerネットワークを削除する
まず、不要なDockerネットワークを削除して、利用可能なIPアドレス範囲を増やします。
- 現在のネットワーク一覧を表示する
ターミナルで以下のコマンドを実行し、現在存在するDockerネットワークのリストを表示しますdocker network ls
- 不要なネットワークを削除する
表示されたネットワーク一覧から、不要なネットワークの名前を確認し、以下のコマンドで削除します。Bash
docker network rm <network_name>
2. Dockerデーモンの設定を変更する
Docker Desktopの設定で、Dockerデーモンが利用可能なIPアドレス範囲を拡張します。
- Docker Desktopの設定を開く
Docker Desktopアプリを起動し、メニューバーのDockerアイコンをクリックして、「Preferences」を選択します。 - Docker Engineの設定を変更する
表示された設定画面で、「Docker Engine」を選択し、daemon.json
を編集します。daemon.json
にdefault-address-pools
設定を追加または修正します。
下記のように、"default-address-pools": [ {"base": "172.20.0.0/16", "size": 24}, {"base": "192.168.0.0/16", "size": 24} ]
を追加します。- "base"はネットワークアドレス、"size"はサブネットマスクを表します。
- この例では、172.20.0.0/16と192.168.0.0/16の2つのアドレスプールを定義しています。
- 設定内容は環境に合わせて適宜変更してください。
- "base"はネットワークアドレス、"size"はサブネットマスクを表します。
- この例では、172.20.0.0/16と192.168.0.0/16の2つのアドレスプールを定義しています。
- 設定内容は環境に合わせて適宜変更してください。
- Docker Desktopを再起動する
設定ファイルを変更したら、「Apply & Restart」をクリックしてDocker Desktopを再起動し、変更を適用します。

{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"default-address-pools": [
{
"base": "172.20.0.0/16",
"size": 24
},
{
"base": "192.168.0.0/16",
"size": 24
}
],
"experimental": false
}