0

我正在尝试container-vm使用机器启动时创建的容器启动 Google Compute Engine VM 实例。您可以在此文档部分中找到一个示例:在实例创建时创建容器

给定的示例一切正常:

apiVersion: v1
kind: Pod
metadata:
  name: service
spec:
  containers:
    - name: jillix-service
      image: gcr.io/google-containers/busybox
      command: ['nc', '-p', '8000', '-l', '-l', '-e', 'echo', 'hello world!']
      imagePullPolicy: Always
      ports:
        - containerPort: 8000
          hostPort: 80

但是当我尝试改用我自己的容器映像时,该映像无法正常工作:

apiVersion: v1
kind: Pod
metadata:
  name: service
spec:
  containers:
    - name: jillix-service
      image: gcr.io/sigma-cairn-99810/service
      imagePullPolicy: Always
      ports:
        - containerPort: 8000
          hostPort: 80

在工作示例中,docker 报告以下容器映像位于 VM 上:

$ sudo  docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
gcr.io/google_containers/pause     0.8.0               2c40b0526b63        7 months ago        241.7 kB
gcr.io/google-containers/busybox   latest              4986bf8c1536        10 months ago       2.433 MB

但是当我使用我的容器图像时,这是缺失的:

gabriel@container-image-builder:~$ sudo docker images

存储库标签图像 ID 创建虚拟大小 gcr.io/google_containers/pause 0.8.0 2c40b0526b63 7 个月前 241.7 kB

所以,我认为这就是我的容器没有启动的原因。但是为什么虚拟机不下载我的gcr.io/sigma-cairn-99810/service图像?

它与身份验证有什么关系吗?(当我手动登录虚拟机gcloud docker pull时,系统会提示我gcloud auth login先登录,然后我可以拉出我的图像,docker run它正常并且一切正常。)

4

1 回答 1

1

您启动的容器虚拟机是否(至少)具有存储“只读”范围?

您可以通过以下方式检查:

curl -H 'Metadata-Flavor: Google' http://metadata.google.internal./computeMetadata/v1/instance/service-accounts/default/scopes
于 2015-11-12T17:28:56.817 回答