はじめに
CentOS7でmaster managerをdocker swarm initで作成した後、nodeをdocker swarm joinすると、STATUS=DOWNになりました。V12で作成したswarm環境をyum updateして上げてきたので、そのどこかで入った問題だと思います。
症状
- workerは問題なくjoinできるのにmanagerだと、joinコマンドがフリーズする。
- master側で docker node ls するとSTATUS=DOWN
環境
- オンプレでプロキシー下
- CentOS7 on VMWare (masterも追加nodeも)
- Docker V17.10 (V17.09でも同じ現象が発生しました。)
解決策
下リンクのイシューで助けられました。
moby/moby のissue #35046
http-proxy.conf に NO_PROXY で全ノードのIPアドレスを列挙する
ことで復旧。
続けて systemctl daemon-reload && systemctl restart docker.serviceしたらmanagerを docker swarm join できました。
なお、http-proxy.conf の場所は systemctl status docker で表示された/etc/systemd/system/docker.service.d の直下。
反映されたか確認するときは systemctl show docker で。