Docker立ち上げたらネットがつながらなくなった話


問題

Docker立ち上げたらネットが繋がらなくなりました。
具体的には、別のDockerを立ち上げようとして

ERROR: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection 
(Client.Timeout exceeded while awaiting headers)

のエラーが出ました。
ブラウザで適当なURL叩いても、ターミナルでping送ってもタイムアウトしてしまう状態...

原因

ネットワーク設定においてIPが衝突してる

解決策

$ docker network ls
$ docker network inspect ネットワークID
//ここでGatewayのipアドレスを確認する
$ ifconfig
//inetアドレスを確認する

もし上記2つのアドレスが被っていれば、それが衝突の原因です。
ドッカ―側のネットワーク設定削除します。

$ docker network rm DockerID

これでネットが繋がるようになるはずです。

予防策

docker-compose.yml のnetworkで被らないIPを指定します。

service: 
  ServiceName:
    network: 
    - xxx.xxx.xxx.x

指定しない場合は動的にIPが割り振られるため、上記設定が面倒だったら
ブラウザでネット立ち上げてる状態でドッカーを起動すればOK。