谷歌容器引擎从容器注册表中提取图像时出现问题

时间:2017-04-10 22:12:33

标签: docker kubernetes google-kubernetes-engine google-container-registry

我正在尝试在GKE上创建一个部署(运行1.6.0),如下所示:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-api
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: api
    spec:
      containers:
        - name: api
          image: eu.gcr.io/<PROJECT>/<IMAGE>:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 3000
          env:
            - name: NODE_ENV
              value: production
          resources:
            requests:
              cpu: 100m

创建此选项失败,并显示以下错误消息:

Failed to pull image "eu.gcr.io/<PROJECT>/<IMAGE>:latest": rpc error: code = 2 desc = failed to register layer: rename /var/lib/docker/image/overlay/layerdb/tmp/layer-629814250 /var/lib/docker/image/overlay/layerdb/sha256/bd2793152ee77e9d503e981352ff16122b220968ce9df1cc3b49b9704d7dfe28: directory not empty
Error syncing pod, skipping: failed to "StartContainer" for "api" with ErrImagePull: "rpc error: code = 2 desc = failed to register layer: rename /var/lib/docker/image/overlay/layerdb/tmp/layer-629814250 /var/lib/docker/image/overlay/layerdb/sha256/bd2793152ee77e9d503e981352ff16122b220968ce9df1cc3b49b9704d7dfe28: directory not empty"

看起来几乎相同但使用不同图像的其他部署正在按预期工作。我试图拉的图像有什么问题?我该如何调试/修复此问题?

1 个答案:

答案 0 :(得分:2)

这可能是由known docker bug引起的,其中在创建图层时将内容同步到磁盘之前会发生关闭。 fix包含在docker v1.13中。

一个临时解决方法sugguested是删除目录中的空文件,然后重新提取图像。