問題描述:
在使用 $ sudo status docker 檢查Docker守護進程的狀態時,遇到如下錯誤:
status: 無法連接到 Upstart: Failed to connect to socket /com/ubuntu/upstart: 拒絕連接
產生原因:
google一下發現原來ubntun已經不再支持upstart的啟動管理方式了。
Systemd 是 Linux 系統中最新的初始化系統(init),它主要的設計目標是克服 sysvinit 固有的缺點,提高系統的啟動速度。systemd 和 ubuntu 的 upstart 是競爭對手,會取代 UpStart,實際上在作者使用的 Ubuntu 16.04LTS 已經采用 systemd 作為其標准的系統初始化系統。
systemd即為system daemon,是linux下的一種init軟件,是 Linux 下的一款系統和服務管理器,兼容 SysV 和 LSB 的啟動腳本。由Lennart Poettering帶頭開發,並在LGPL 2.1及其后續版本許可證下開源發布,開發目標是提供更優秀的框架以表示系統服務間的依賴關系,並依此實現系統初始化時服務的並行啟動,同時達到降低Shell的系統開銷的效果,最終代替現在常用的System V與BSD風格init程序。
與多數發行版使用的System V風格init相比,systemd采用了以下新技術:(1) 采用Socket激活式與總線激活式服務,以提高相互依賴的各服務的並行運行性能;
(2) 用Cgroups代替PID來追蹤進程,以此即使是兩次fork之后生成的守護進程也不會脫離systemd的控制。
systemd 的特性有:
支持並行化任務;同一時候採用 socket 式與 D-Bus 總線式激活服務;按需啟動守護進程(daemon)。利用 Linux 的 cgroups 監視進程;支持快照和系統恢復。維護掛載點和自己主動掛載點。各服務間基於依賴關系進行精密控制。
名字來源:
systemd這一名字源於Unix中的一個慣例:在Unix中常以“d”作為系統守護進程(英語:daemon,亦稱后台進程)的后綴標識。除此以外,systemd亦是借代英文術語D體系,而這一術語即是用於描述一個人具有快速地適應環境並解決困難的能力。
檢視和控制systemd的主要命令是systemctl。
該命令可用於查看系統狀態和管理系統及服務。
Tips: - 在 systemctl 參數中加入 -H <username>@<主機名> 能夠實現對其它機器的遠程控制。 該過程使用 SSH連接。 - systemadm 是 systemd 的官方圖形前端。官方軟件倉庫 提供了穩定版本號 systemd-ui。 - Plasma 用戶能夠安裝 systemctl 圖形前端 systemd-kcm。 安裝后能夠在 System administration 下找到
問題解決:
查看docker服務是否啟動:
$ systemctl status docker
若未啟動,則啟動docker服務:
$ sudo systemctl start docker
