无法使用文件/etc/docker/daemon.json配置Docker守护进程:EOF

16

我是docker的新手,无法理解这些错误。所以,请告诉我是否需要更多信息。

`$ docker --version`
Docker version 1.12.6, build 88a4867/1.12.6

`$ docker info`
 Cannot connect to the Docker daemon. Is the docker daemon running on this host?

`$sudo dockerd`

FATA[0000] unable to configure the Docker daemon with file /etc/docker/daemon.json: EOF

`$sudo systemctl start docker`

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

`$sudo systemctl status docker.service -l`

● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2017-07-26 14:30:21 EDT; 8min ago
  Docs: http://docs.docker.com

  Process: 5835 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --authorization-plugin=rhel-push-plugin --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=1/FAILURE)
 Main PID: 5835 (code=exited, status=1/FAILURE)

Jul 26 14:30:21: Starting Docker Application Container Engine...
Jul 26 14:30:21 dockerd-current[5835]: time="2017-07-26T14:30:21-04:00" level=fatal msg="unable to configure the Docker daemon with file /etc/docker/daemon.json: EOF\n"
Jul 26 14:30:21 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jul 26 14:30:21 systemd[1]: Failed to start Docker Application Container Engine.
Jul 26 14:30:21 systemd[1]: Unit docker.service entered failed state.
Jul 26 14:30:21 systemd[1]: docker.service failed.
请告知我是否需要检查其他任何事项。

你创建了daemon.json文件吗?如果是,它是空的吗? - Tarun Lalwani
是的,它是空的。我想我是用vim创建的。 - Aki
4个回答

47

文件/etc/docker/daemon.json不应存在,或者如果它存在,则应具有有效的JSON对象。一个空文件会创建错误。要么删除该文件,要么如果您想要一个空文件,则将其设置为以下内容:

{
}

这将创建一个空的json对象


我和你有同样的问题,已经按照你的方式修改了我的daemon.json文件,但是Docker服务无法启动,直到我删除了该文件并重新启动计算机:) 我不知道为什么会这样? - Omid Mohebbi
@OmidMohebbi,也许在更新的版本中,他们确实希望值存在。 - Tarun Lalwani
1
您的回答救了我。上帝保佑您,先生。 - TheSETJ

3
在root用户下,输入以下命令:

$ nano /etc/docker/daemon.json

如果文件显示为空白或没有文本,则只需添加“:”即可。
{
}

然后保存并退出。
然后尝试使用以下命令重新启动Docker:
$ service docker restart

2

我有同样的问题。但是我编辑了文件/etc/docker/daemon.json并向其中添加了一些选项。如果带有选项的字符串不是最后一个,则必须以逗号字符(,)结尾。

最初的回答已经进行了编辑,如果带有选项的字符串不是最后一个,则必须以逗号字符(,)结尾。


0
在我的情况下,只需使用以下命令删除该文件: $sudo rm /etc/docker/daemon.json

然后重新启动服务 $sudo systemctl restart docker.service $sudo systemctl status docker.service


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接