Docker 容器错误:OCI 运行时创建失败:无效的 rootfs

问题描述 投票:0回答:1

我是 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 文件系统中进行的搜索。

有人可以帮助我了解可能导致此错误的原因以及如何解决它吗?

docker dockerfile docker-container docker-build docker-run
1个回答
0
投票

如果您的

C:
驱动器已满,那么很可能其中一些空间被 Docker 映像和容器占用。这就是我的建议:

  1. 将所有更改恢复到
    daemon.json
    并重新启动 Docker(或 Docker Desktop)以使此生效。
  2. 清除未使用的图像和容器。使用 Docker CLI,您可以使用
    docker system prune -a
    来完成此操作。我不确定 Docker Desktop 的等效项是什么,但必须有一个选项来删除它们。
© www.soinside.com 2019 - 2024. All rights reserved.