docker - 由于某些(隐藏)原因,无法启动 Docker 守护进程
问题描述
我正在尝试推送 docker 映像,并注意到我的 docker 守护程序实际上可能没有运行。
例如,如果我运行:
docker run hello-world
docker:无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。docker 守护进程是否正在运行?
如果我尝试使用以下方法重新启动守护程序:
systemctl start docker
docker.service 的作业失败,因为控制进程以错误代码退出。有关详细信息,请参阅“systemctl status docker.service”和“journalctl -xe”。
继续运行:
systemctl status docker.service
docker.service - Docker 应用程序容器引擎
已加载:已加载(/lib/systemd/system/docker.service;已启用;供应商预设:已启用)活动:自 2021 年 5 月 12 日星期三 14:45:09 EEST 以来失败(结果:start-limit-hit);43 秒前
文档:https
://docs.docker.com 进程:4810 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1 /FAILURE) 主 PID: 4810 (code=exited, status=1/FAILURE)5 月 12 日 14:45:07 iti-554 systemd[1]: docker.service: 单元进入失败状态。
5 月 12 日 14:45:07 iti-554 systemd [1]:docker.service:失败,结果为“退出代码”。
5 月 12 日 14:45:09 iti-554 systemd[1]: docker.service: 服务延迟时间结束,计划重启。
5 月 12 日 14:45:09 iti-554 systemd[1]:停止 Docker 应用程序容器引擎。
5 月 12 日 14:45:09 iti-554 systemd[1]:docker.service:启动请求重复太快。
5 月 12 日 14:45:09 iti-554 systemd[1]: 无法启动 Docker 应用程序容器引擎。
5 月 12 日 14:45:09 iti-554 systemd[1]: docker.service: 单元进入失败状态。
5 月 12 日 14:45:09 iti-554 systemd[1]:docker.service:失败,结果为“start-limit-hit”。
据我了解,这意味着未加载 docker 守护程序(它处于失败状态),最后一个原因是已达到start-limit-hit 。这可能意味着发生这种情况的另一个原因。
那么,我如何找出我的 docker 守护进程拒绝启动的实际原因?
如果我运行以重置失败的尝试计数器:
systemctl reset-failed docker.service
它返回没有错误,所以我认为它成功了。事实上,当我检查它的状态时,它已经变成:
活动:自东部标准时间 2021 年 5 月 12 日星期三 14:45:09 起不活动(死亡);14 分钟前
当然,如果我再次运行 docker daemon 它会失败。
有人可以提供有关此问题的任何解决方法吗?我什至尝试在重新启动后调用命令(没有帮助)。
编辑
好吧,就我而言,这个问题是一个相当愚蠢的问题。我添加了一个daemon.json
内容最少的文件。就是这个:cat /etc/docker/daemon.json
{
"insecure-registries": [
"docker-server.com:10022",
"docker-server.com:10023"
],
}
问题是之前的悬空逗号}
使 docker 搜索另一个参数。使用显示的相关消息journalctl -u docker
是:
无法使用文件 /etc/docker/daemon.json 配置 Docker 守护程序:无效字符 '}' 正在寻找对象键字符串的开头
很明显,但以前的帮助不大。
解决方案
journalctl -u docker
为您提供 docker 守护进程日志。也许你可以在那里找到一些东西。
推荐阅读
- ruby - 第二列中 NMatrix 矩阵的水平串联不正确
- html - 如何在页面重新加载时保持选定的手风琴处于活动状态
- async-await - 使用期货从套接字列表中选择
- facebook - 为一个 Facebook 应用程序使用多个不同的域
- php - 支持mysql的php动态复选框
- javascript - 在海报加载之前强制播放视频
- javascript - 如何在范围内获得总和?
- mysql - 在 VBA 宏中执行从 Excel 表中获取输入的 SQL 查询
- angular - 如何在前端使用 Angular 7 和在后端使用 Spring Boot 调试应用程序
- javascript - 在 Magento 2 中编辑前端的最佳方法是什么?