我是 Docker 新手,在尝试运行 Docker 容器并访问其 shell 时遇到错误。
我已经成功构建了一个名为“friendnet-client”的镜像。该图像基于
node:20.3.0-alpine3.17
图像设置了 Node.js 环境。
FROM node:20.3.0-alpine3.17
WORKDIR /app
COPY . .
RUN npm install
当我尝试使用以下命令打开容器的外壳时:
docker run -it friendnet-client sh
我遇到以下错误:
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: invalid rootfs: stat /var/run/desktop-containerd/daemon/io.containerd.runtime.v2.task/moby/2fba0ba5512bd017e06c3a26b730ca76f9577fe50e5e1b2a24f29604dc011479/E:\my software\Docker\ProgramData/vfs/dir/149ecdeb95fccf2e7d1a4e8b5c60bf912e8d3b8d2ea7b5b7b53ab8220b8bd722: no such file or directory: unknown.
在此之前,我尝试将 daemon.json 配置文件中的 data-root 更改为 E:\my software\Docker\ProgramData,因为我的 C 盘已满。这是我的 daemon.json 配置:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"data-root": "E:\\my software\\Docker\\ProgramData"
}
但是,我不确定这个调整是否与当前的问题有关。在错误消息中,路径似乎同时使用了 / 和 ,类似于执行命令期间在 Linux 文件系统中进行的搜索。
有人可以帮助我了解可能导致此错误的原因以及如何解决它吗?
如果您的
C:
驱动器已满,那么很可能其中一些空间被 Docker 映像和容器占用。这就是我的建议:
daemon.json
并重新启动 Docker(或 Docker Desktop)以使此生效。docker system prune -a
来完成此操作。我不确定 Docker Desktop 的等效项是什么,但必须有一个选项来删除它们。