朝起きて自宅dockerサーバを触ろうと思ったらdockerホストが再起動されていた。(CoreOS)
親がサーバうるさいから電源消したのかと疑ったら、そんな形跡はなかった。
とりあえず、dockerのログを確認してみた。
■dockerログ
docker系のログは以下のコマンドで確認できる。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@adachin-docker ~ $ sudo journalctl -u docker Oct 21 23:26:13 adachin-docker dockerd[1517]: time="2016-10-21T23:26:13.367370032Z" level=info msg="Proces Oct 21 23:26:13 adachin-docker systemd[1]: Stopping Docker Application Container Engine... Oct 21 23:26:23 adachin-docker dockerd[1517]: time="2016-10-21T23:26:23.368355393Z" level=info msg="Contai Oct 21 23:26:23 adachin-docker dockerd[1517]: time="2016-10-21T23:26:23.368462602Z" level=info msg="Contai Oct 21 23:26:23 adachin-docker dockerd[1517]: time="2016-10-21T23:26:23.368578626Z" level=info msg="Contai Oct 21 23:26:24 adachin-docker systemd[1]: Stopped Docker Application Container Engine. -- Reboot -- Oct 21 23:59:08 adachin-docker systemd[1]: Started Docker Application Container Engine. Oct 21 23:59:10 adachin-docker dockerd[1163]: time="2016-10-21T23:59:10.020658403Z" level=info msg="Graph Oct 21 23:59:10 adachin-docker dockerd[1163]: time="2016-10-21T23:59:10.213712465Z" level=info msg="Firewa Oct 21 23:59:10 adachin-docker dockerd[1163]: time="2016-10-21T23:59:10.859346131Z" level=info msg="Defaul Oct 21 23:59:11 adachin-docker dockerd[1163]: time="2016-10-21T23:59:11.311383219Z" level=info msg="Loadin |
どうやら昨日の夜にコンテナがstopされて再起動されていることが分かる。
むむ。なぜなのか。
公式にはこんなことが書いてあった。
■公式
https://coreos.com/os/docs/latest/update-strategies.html
In case when you don’t want to install updates onto the passive partition and avoid update process on failure reboot,
you can disable update-engine service manually with sudo systemctl stop update-engine command (it will be enabled automatically next reboot).
If you wish to disable automatic updates permanently, use can configure this with Cloud-Config.
意訳)
アップデートをして再起動したくない場合は、
sudo systemctl stop update-engineコマンドを使用して手動でアップデートを無効にすることができます。
(OS再起動すると有効になります)
永続的に自動更新を無効にしたい場合はCloud-Configで設定することができます。
つまりCoreOSはCentOS、Ubuntuとは違ってアップデートじゃんじゃん!再起動勝手にやっちまうぜ!
セキュアなんだぜ!ってことなんだろう。
とりあえずupdate-engineはどのように動いているか確認してみた。
■update-engine
CoreOSはCentOS7と同じでサービスデーモンがsystemctlで管理されているので、
Unitファイルは以下になっていた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
@adachin-docker ~ $ systemctl cat update-engine.service # /usr/lib64/systemd/system/update-engine.service [Unit] Description=Update Engine ConditionVirtualization=!container ConditionPathExists=!/usr/.noupdate [Service] Type=dbus BusName=com.coreos.update1 ExecStart=/usr/sbin/update_engine -foreground -logtostderr BlockIOWeight=100 Restart=always RestartSec=30 [Install] WantedBy=default.target |
statusを確認してみた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
@adachin-docker ~ $ systemctl status update-engine ● update-engine.service - Update Engine Loaded: loaded (/usr/lib64/systemd/system/update-engine.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2016-10-21 23:27:18 UTC; 54min ago Main PID: 853 (update_engine) Tasks: 2 Memory: 9.9M CPU: 62ms CGroup: /system.slice/update-engine.service └─853 /usr/sbin/update_engine -foreground -logtostderr Oct 22 00:17:04 adachin-docker update_engine[853]: <app> Oct 22 00:17:04 adachin-docker update_engine[853]: </response> Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:omaha_request_action.cc(394)] No upd$ Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:action_processor.cc(82)] ActionProces Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:omaha_response_handler_action.cc(36)] Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:action_processor.cc(68)] ActionProces Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:action_processor.cc(73)] ActionProces Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:update_attempter.cc(283)] Processing Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:update_attempter.cc(319)] No update. Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:update_check_scheduler.cc(82)] Next u |
■対応
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
@adachin-docker ~ $ sudo systemctl stop update-engine @adachin-docker ~ $ systemctl status update-engine ● update-engine.service - Update Engine Loaded: loaded (/usr/lib64/systemd/system/update-engine.service; disabled; vendor preset: disabled) Active: failed (Result: exit-code) since Sat 2016-10-22 00:23:14 UTC; 4s ago Process: 853 ExecStart=/usr/sbin/update_engine -foreground -logtostderr (code=exited, status=1/FAILURE) Main PID: 853 (code=exited, status=1/FAILURE) Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:action_processor.cc(68)] ActionProces Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:action_processor.cc(73)] ActionProces Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:update_attempter.cc(283)] Processing Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:update_attempter.cc(319)] No update. Oct 22 00:17:04 adachin-docker update_engine[853]: [1022/001704:INFO:update_check_scheduler.cc(82)] Next u Oct 22 00:23:14 adachin-docker systemd[1]: Stopping Update Engine... Oct 22 00:23:14 adachin-docker systemd[1]: update-engine.service: Main process exited, code=exited, status Oct 22 00:23:14 adachin-docker systemd[1]: Stopped Update Engine. Oct 22 00:23:14 adachin-docker systemd[1]: update-engine.service: Unit entered failed state. Oct 22 00:23:14 adachin-docker systemd[1]: update-engine.service: Failed with result 'exit-code'. |
これで再起動されることはないはず!
■まとめ
初めは落ちたと勘違いしていたが、CoreOS独自の仕様であった。
また再起動されたら自動起動される要因を深く探ってみようと思う。
母上スマン。
0件のコメント