事
↑に従ってインストールしてる時、
$ sudo systemctl start docker
で失敗した
以下はjournalctlのログ
12月 20 16:09:52 example systemd[1]: docker.service holdoff time over, scheduling restart. 12月 20 16:09:52 example systemd[1]: Starting Docker Application Container Engine... -- Subject: Unit docker.service has begun start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit docker.service has begun starting up. 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.180328678+09:00" level=info msg="parsed scheme: \"unix\"" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.180393506+09:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.180440304+09:00" level=info msg="parsed scheme: \"unix\"" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.180449023+09:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.183865860+09:00" level=info msg="[graphdriver] using prior storage driver: overlay2" 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.184705891+09:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0 <nil>}]" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.184734395+09:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.184783244+09:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc420612910, CONNECTING" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.184977899+09:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc420612910, READY" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.185005436+09:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0 <nil>}]" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.185016987+09:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.185046636+09:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc420612be0, CONNECTING" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.185160010+09:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc420612be0, READY" module=grpc 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.188935526+09:00" level=info msg="Graph migration to content-addressability took 0.00 seconds" 12月 20 16:09:52 example dockerd[26871]: time="2018-12-20T16:09:52.189454109+09:00" level=info msg="Loading containers: start." 12月 20 16:09:52 example dockerd[26871]: Error starting daemon: Error initializing network controller: list bridge addresses failed: no available network 12月 20 16:09:52 example systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE 12月 20 16:09:52 example systemd[1]: Failed to start Docker Application Container Engine. -- Subject: Unit docker.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit docker.service has failed. -- -- The result is failed.
以上はjournalctlのログ
Error starting daemon: Error initializing network controller: list bridge addresses failed: no available network
ほう
$ ip l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:50:56:b9:26:14 brd ff:ff:ff:ff:ff:ff 3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:50:56:b9:76:49 brd ff:ff:ff:ff:ff:ff
なんでdocker0が生成されないんだ…
何故
追記(2018/12/24)
ちゃんと見てなかったのでとても恥ずかしいんですが、上記ルーティングの ens192
というやつがこういうroutingをしていた
$ ip r 172.16.0.0/12 via 10.26.149.254 dev ens192 proto static metric 100
docker0
が作りたいルーティングは以下の通りで、ホストアドレス部分が被ってしまうためdockerインストール時にルーティングが作られないようだった
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
また、このままホストアドレス部分が被っているとまずいので被っているルーティングについて解決する必要がある
今回は ens192
側のサブネットマスクを大きくして必要な部分だけルーティングで追加していくのが手っ取り早そうだったので ens192
側を解決させた(ここでは省略するけども)
追記ここまで(2018/12/24)
作られなかったブリッジを作る
というわけで本来作ってくれるはずだった仮想ブリッジの docker0 を作ってあげます
$ sudo ip link add name docker0 type bridge $ sudo ip addr add dev docker0 172.17.0.1/16
$ sudo systemctl start docker.service $ sudo systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since 木 2018-12-20 16:32:23 JST; 3min 27s ago
docker0の使用するip帯を変えるには
追記(2018/12/24)
もしdocker側を変えたい場合はdocker daemon起動時の引数に --bip=他のアドレス
を指定すると良いです
$ sudo systemctl stop docker $ sudo ip link set dev docker0 down $ sudo ip link del dev docker0 $ ip r default via 10.0.2.2 dev enp0s3 proto static metric 100 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100 172.18.0.0/16 dev br-da27a92cc9df proto kernel scope link src 172.18.0.1 192.168.100.0/24 dev enp0s8 proto kernel scope link src 192.168.100.20 metric 100 // docker0 がないことを確認する $ cat /usr/lib/systemd/system/docker.service ~~省略~~ [Service] ~~省略~~ +EnvironmentFile=/etc/sysconfig/docker -ExecStart=/usr/bin/dockerd -H unix:// +ExecStart=/usr/bin/dockerd -H unix:// $OPTIONS ~~省略~~ $ cat /etc/sysconfig/docker +OPTIONS="--bip=10.17.0.1/16" $ sudo systemctl daemon-reload $ sudo systemctl start docker $ ip r default via 10.0.2.2 dev enp0s3 proto static metric 100 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100 172.18.0.0/16 dev br-da27a92cc9df proto kernel scope link src 172.18.0.1 10.17.0.0/16 dev docker0 proto kernel scope link src 10.17.0.1 192.168.100.0/24 dev enp0s8 proto kernel scope link src 192.168.100.20 metric 100 // docker0のdestがbipで指定したやつになっている💯
追記ここまで(2018/12/24)
さいごに
おわりです