You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP环境拉取Docker镜像报错:Untar error on re-exec cmd: stale NFS file handle

解决GCP环境中Docker拉取镜像时的"NFS stale file handle"错误

我之前在GCP上部署Docker服务时,也碰到过完全一样的问题——执行sudo docker pull nginx:1.10.0拉取镜像到一半,突然弹出FATA[0002] failed to register layer: Untar error on re-exec cmd: fork/exec /proc/self/exe: stale NFS file handle的报错。这个问题的核心原因是Docker的存储目录挂载在NFS上,而NFS出现了无效的文件句柄,导致镜像解压时无法正常访问文件。

下面是我亲测有效的解决步骤:

1. 确认Docker根目录的挂载情况

先验证Docker的存储目录是否确实在NFS挂载点上:

docker info | grep "Docker Root Dir"

如果输出的路径(比如/var/lib/docker)是NFS挂载的,那就能锁定问题根源了。

2. 停止Docker服务

操作挂载目录前,先停掉Docker避免冲突:

sudo systemctl stop docker

3. 重新挂载NFS目录,刷新文件句柄

先卸载当前的NFS挂载:

sudo umount /var/lib/docker  # 替换成你实际的Docker根目录路径

然后参照/etc/fstab里的配置参数,重新挂载NFS:

sudo mount -t nfs <你的NFS服务器IP>:<共享目录路径> /var/lib/docker

比如你的NFS服务器是10.0.0.5,共享目录是/nfs/docker,那命令就是:

sudo mount -t nfs 10.0.0.5:/nfs/docker /var/lib/docker

4. 重启Docker并重新拉取镜像

完成挂载后重启Docker,再尝试拉取镜像:

sudo systemctl start docker
sudo docker pull nginx:1.10.0

额外排查与临时方案

如果重新挂载后还是报错,可能是NFS服务器端的问题:

  • 检查GCP上的NFS实例是否正常运行,共享目录的权限是否允许Docker进程读写(一般需要root或docker用户组有读写权限)
  • 确认NFS服务器没有重启过或者共享目录的配置被修改

要是暂时没法修复NFS,也可以临时切换Docker的存储目录到本地磁盘:

  1. 新建本地存储目录:sudo mkdir -p /opt/docker
  2. 创建/修改/etc/docker/daemon.json:
{
  "data-root": "/opt/docker"
}
  1. 重启Docker:sudo systemctl restart docker
    这个方案能快速绕开NFS的问题,但只是临时应急,长期还是建议修复NFS挂载的稳定性。

内容的提问来源于stack exchange,提问作者Freakachoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:45:02