问题描述:
在使用 $ 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