docker - Google容器引擎在从容器注册表中提取图像时遇到问题

标签 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"

看起来几乎相同但使用不同镜像的其他部署正在按预期工作。我要提取的图像出了什么问题?以及如何调试/修复此问题?

最佳答案

这可能是由known docker bug引起的,在创建内容时将其关闭后才将内容同步到磁盘。 fix包含在docker v1.13中。

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

关于docker - Google容器引擎在从容器注册表中提取图像时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43333703/

相关文章:

docker - 为什么Docker不编译我的微服务源文件?

kubernetes - 在 pod 运行时挂载 Kubernetes secret

kubernetes - 在Kubernetes集群中,可以从其他容器内部获取容器/容器IP地址

kubernetes - 如何初始化动态配置的永久磁盘

google-cloud-platform - 谷歌云部署管理器更新容器集群

linux - 如何影响 Dockerfile 中 RUN 命令的顺序?

docker - 如何链接多个Docker容器并封装结果?

docker - Docker组成,单独运行时无法与裸端口通信吗?

oracle - Kubernetes 负载均衡器 Oracle Cloud NGINX 入口 Controller 问题

routing - istio 导出网关 : routing through a static IP