📌  相关文章
📜  dockerd 无法启动守护进程:无法获取临时目录以生成运行时脚本 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:00:30.796000             🧑  作者: Mango

Dockerd 无法启动守护进程

当我们启动 Docker 时可能会遇到这样的错误信息:

dockerd: unable to start daemon: unable to get temporary directory to generate runtime scripts: mkdir /tmp/docker-bootstrap-scriptxxxxxx: permission denied

这个错误消息告诉我们 Dockerd 启动守护进程失败,原因是无法获取临时目录以生成运行时脚本。

解决方法

通常出现这个错误的原因是 Docker 没有权限执行 /tmp/ 目录,我们需要给 Docker 增加相应的权限。

方法一:更改默认临时目录

可以通过修改 /etc/docker/daemon.json 文件中的 data-root 属性来更改 Docker 默认的临时目录。

{
  "data-root": "/mnt/docker-data-root",
  "storage-driver": "overlay2"
}

daemon.json 中配置 data-root 为 Docker 可以访问的目录,重启 Docker 后 Docker 就会使用新的路径。

方法二:更改 /tmp/ 目录的权限

另一种方法是更改 /tmp/ 目录的权限,让 Docker 可以执行。

sudo chmod 1777 /tmp/

上述命令不仅添加了用户、组和其他人的写入权限,而且添加了特殊权限“t”(保存用于在该目录下创建 文件/目录的inode),确保所有人都可以在该目录中创建文件。

修改后,退出当前 SSH 会话并重新运行 dockerd 即可。

总结

出现 Dockerd 启动失败的问题需要根据具体错误信息对症下药。当 Dockerd 无法获取临时目录以生成运行时脚本时,可以更改 Docker 默认的临时目录或更改临时目录的权限为 Docker 可以执行。