当前位置: 首页 > 知识库问答 >
问题:

Docker for Windows Kubernetes pod在创建新部署后获取ImagePullBackOff

桂梓
2023-03-14
docker build -t myimage -f myDockerFile .

(上面成功地在docker本地注册表中创建了一个映像)

kubectl run myapp --image=myimage:latest

(据我理解,这和使用kubectl create deployment命令是一样的)

上面的命令成功地创建了一个部署,但是当它创建一个pod时,pod状态总是显示:

NAME                                   READY  STATUS            RESTARTS  AGE 
myapp-<a random alphanumeric string>   0/1    ImagePullBackoff  0         <age>

我不确定为什么它在拉图像时遇到麻烦--它可能不知道docker本地图像在哪里吗?

共有1个答案

方波娃
2023-03-14

我也有同样的问题。归结为ImagePullPolicy:

PC:~$ kubectl explain deployment.spec.template.spec.containers.imagePullPolicy
KIND:     Deployment
VERSION:  extensions/v1beta1

FIELD:    imagePullPolicy <string>

DESCRIPTION:
     Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always
     if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.
     More info:
     https://kubernetes.io/docs/concepts/containers/images#updating-images

具体地说,如果指定了:latest标记,则表示:默认为Always的部分。

这意味着,您创建了一个本地映像,但是,由于您使用:latest,它将尝试在您配置的任何远程存储库(默认为docker hub)中找到它,而不是使用您的本地映像。只需将命令更改为:

kubectl run myapp --image=myimage:latest --image-pull-policy Never
kubectl run myapp --image=myimage:latest --image-pull-policy IfNotPresent
 类似资料:
  • 有人能帮我吗?我是Android系统的新手,我正尝试在AVD中打开应用程序,安装了应用程序,但我得到错误“一个新的会话不能被创建。(原始错误:命令失败:)”,“杀死”:false,“代码”:1,“信号”:null,“origvalue”:“命令失败:”},“sessionid”:null} 谢谢你事先的帮助 尝试只提供Capabilities.SetCapability(“AppActivity”

  • 我试图从Weblogic脚本工具获得部署状态。我所说的部署是指Weblogic服务器管理控制台中显示的部署列表-域结构-部署 我发现: 我可以获取“某些”应用程序部署的状态(我在config.xml中找到了这些应用程序的名称),但这些不是来自Weblogic server管理控制台。有人能告诉我在哪里可以得到这份清单,以及它的当前状态吗?

  • 我有一个表,其中包含。 我还有一个硬编码表,其中我已经为每个国家/地区创建了一个区域,国家/地区是主键。 我想加入

  • 我正在遵循那个教程(https://www.baeldung.com/spring-boot-minikube)我想在yaml文件(simple-crud-dpl.yaml)中创建Kubernetes部署: 但是当我运行<code>时,kubectl创建了一个-f简单的crud dpl。yaml我得到: 我使用的是最新版本的库贝特: 我也在本地使用minikube,正如教程中所描述的。部署和服务前

  • 我正在使用Mongck迁移Spring Boot应用程序中的数据。Spring Boot应用程序在本地运行良好。但在docker上运行时,会发生以下错误: 在此处查看完整日志 这是文件中build.gradle依赖项: 以及MongockConfig类的内容: 我不明白为什么它在docker上运行时不起作用。我的mongockInitializingBeanRunner方法是否不正确。 谁来帮帮我

  • 我想将云服务部署到Azure,但在部署时必须选择存储帐户(在新门户和Visual Studio 2015中都尝试过)。我的存储帐户是使用新门户“存储帐户”创建的,并分配给了某些资源组,因此在部署时我无法选择它。对如何部署有何建议?