我正在尝试在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"
看起来几乎相同但使用不同镜像的其他部署正在按预期工作。我要提取的图像出了什么问题?以及如何调试/修复此问题?
最佳答案
这可能是由known docker bug引起的,在创建内容时将其关闭后才将内容同步到磁盘。 fix包含在docker v1.13中。
一种临时的解决方法sugguested是删除目录中的空文件,然后重新拉动图像。
关于docker - Google容器引擎在从容器注册表中提取图像时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43333703/