docker-compose を使っていると、SSH 等でホストにアクセスできなくなることがあって困っていました。
タイミングとしてはdocker-compose up -d
を行ったときに起きるので、この状態で何が起きているのかコンソールから確認を行ってみたらdocker のネットワークとして 192.168.###.### のネットワークが作成されてしまっていました。
docker-compose でコンテナの up/down を行うとネットワークがそのたびに作り直されることになりますが、そのときに/16
のようにかなり大きなネットワークが割り振られてしまうことは認識していいました。ただ、172.16.0.0/12 の範囲を使い切ってしまうと、192.168.0.0/16 の範囲を割り振りし始めるとは予想外でした。そして、運悪くこの割り振られるプライベートネットワークの範囲が、既存のプライベートネットワークと被ってしまうと通信できなくなるわけですね。
この挙動についてはdaemon.json
でdefault-address-pools
を指定することで調整できるようです。
僕の使い方では/24
とかで十分(更にいえば 99% 以上/28
で大丈夫)なので、こんな感じに設定変更することにしました。
/etc/docker/daemon.json
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12302
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。