Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.
2.1 查看日志
sudo journalctl -u docker.service --no-pager
2.2 日志输出
我们能够看到关键的问题: “unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character ‘â’ looking for beginning of object key string”。
它代表了,docker 无法解析这个配置文件:daemon.json。原因是里面包含一个非法字符 “ â ”。
[root@localhost app]# sudo journalctl -u docker.service --no-pager 7月 28 17:14:41 localhost.localdomain systemd[1]: Starting Docker Application Container Engine... 7月 28 17:14:41 localhost.localdomain dockerd[1218]: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character 'â' looking for beginning of object key string 7月 28 17:14:41 localhost.localdomain systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE 7月 28 17:14:41 localhost.localdomain systemd[1]: docker.service: Failed with result 'exit-code'. 7月 28 17:14:41 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine. 7月 28 17:14:43 localhost.localdomain systemd[1]: docker.service: Scheduled restart job, restart counter is at 1. 7月 28 17:14:43 localhost.localdomain systemd[1]: Stopped Docker Application Container Engine. 7月 28 17:14:43 localhost.localdomain systemd[1]: Starting Docker Application Container Engine... 7月 28 17:14:43 localhost.localdomain dockerd[2218]: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character 'â' looking for beginning of object key string 7月 28 17:14:43 localhost.localdomain systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
我用 nano,你用 vi、vim 都可以随便
sudo nano /etc/docker/daemon.json
将此文件的内容全删掉,替换为如下内容(注意格式正确):
{ "exec-opts": ["native.cgroupdriver=systemd"], "storage-driver": "overlay2" }
4.1 修复文件为 UTF-8 编码
请注意,下面命令中,你要替换成你的 docker 配置文件 daemon.json 的位置。但是一般来说,和我的这个文件的位置是一样的,你可以看一下是否一样,再执行。
sudo iconv -f $(file -bi /etc/docker/daemon.json | sed -e 's/.*[ ]charset=//') -t utf-8 /etc/docker/daemon.json -o /etc/docker/daemon.json.utf8
4.2 修复后重命名文件
sudo mv /etc/docker/daemon.json.utf8 /etc/docker/daemon.json
sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl status docker