【rockyLinux·9.4】docker报错:Job for docker.service failed because the control process exited with error

MicroLindb 2024-08-26 08:07:02 阅读 99

一、报错说明

1.报错内容

<code>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.报错原因分析

2.1 查看日志

<code>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

在这里插入图片描述

二、问题解决

1.编辑 daemon.json 内容

我用 nano,你用 vi、vim 都可以随便

<code>sudo nano /etc/docker/daemon.json

2.替换内容

将此文件的内容全删掉,替换为如下内容(注意格式正确):

{

"exec-opts": ["native.cgroupdriver=systemd"],

"storage-driver": "overlay2"

}

3.保存,退出

4.更改编码格式

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

三、测试,是否好用了?

1.应用配置文件,重启 docker 并查看状态

sudo systemctl daemon-reload

sudo systemctl restart docker

sudo systemctl status docker

2.好用啦!

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。