📅  最后修改于: 2023-12-03 15:00:30.796000             🧑  作者: Mango
当我们启动 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 可以执行。