如何在从我的项目容器映像创建实例时创建容器
How can I create containers at time of instance creation from my project container images
我正在尝试使用机器启动时创建的容器启动 container-vm
Google Compute Engine VM 实例。您可以在本文档部分找到这样的示例:Creating containers at time of instance creation.
给定的示例一切正常:
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
所以,我认为这就是我的容器没有启动的原因。但是为什么 VM 不下载我的 gcr.io/sigma-cairn-99810/service
图像?
它与身份验证有什么关系吗? (当我手动登录到 VM 并 gcloud docker pull
时,系统会先提示我 gcloud auth login
,然后我可以拉取我的镜像并 docker run
它正常并且一切正常。)
您启动的容器虚拟机是否(至少)具有存储 "read only" 范围?
您可以通过以下方式检查:
curl -H 'Metadata-Flavor: Google' http://metadata.google.internal./computeMetadata/v1/instance/service-accounts/default/scopes
我正在尝试使用机器启动时创建的容器启动 container-vm
Google Compute Engine VM 实例。您可以在本文档部分找到这样的示例:Creating containers at time of instance creation.
给定的示例一切正常:
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
所以,我认为这就是我的容器没有启动的原因。但是为什么 VM 不下载我的 gcr.io/sigma-cairn-99810/service
图像?
它与身份验证有什么关系吗? (当我手动登录到 VM 并 gcloud docker pull
时,系统会先提示我 gcloud auth login
,然后我可以拉取我的镜像并 docker run
它正常并且一切正常。)
您启动的容器虚拟机是否(至少)具有存储 "read only" 范围?
您可以通过以下方式检查:
curl -H 'Metadata-Flavor: Google' http://metadata.google.internal./computeMetadata/v1/instance/service-accounts/default/scopes