我的操作系统是windows 10 pro,我用弹簧引导进行开发。首先,我用下面的Dockerfile构建了码头映像。
FROM openjdk:11-jdk
ADD target/Spring-Blog-Jpa-0.0.1-SNAPSHOT.jar blog-app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Dfile.encoding=UTF8","-jar","blog-app.jar"]使用docker命令成功地构建了停靠器映像。
> docker image build -t blog-app:latest .然后我从docker存储库中提取mysql:最新的图像。而mysql的拉动也是成功的。
> docker image pull mysql:latest .我试着用那些对接者的图像生成库伯内特斯吊舱。在mysql :最新图像的情况下,生成mysql时没有错误。但是当生成博客-应用程序荚时,博客应用程序:最新的图像不能被提取,错误信息被抛出。下面是配置yaml文件。
apiVersion: apps/v1
kind: Pod
metadata:
name: blog-system
spec:
containers:
- name: blog-app
image: blog-app:latest
args: ["-t", "-i"]我不知道为什么在制作豆荚的时候,本地制作的图像不能被拉出来。是否有任何过程来推动本地码头储存库?如何才能在库伯提斯岛上绘制本地建造的码头图像?
发布于 2020-02-24 03:57:45
您可以从Minikube重用Docker守护进程。下面是Powershell上的命令。
PS C:\minikube>小型码头-env
PS C:\minikube> minikube对接器-env_
docker -t博客-app:最新
设置荚规范中的图像,就像构建标记一样
将imagePullPolicy设置为从不,否则Kubernetes将尝试下载映像。
apiVersion: apps/v1
kind: Pod
metadata:
name: blog-system
spec:
containers:
- name: blog-app
image: blog-app:latest
imagePullPolicy: Never
args: ["-t", "-i"]还请检查此指南
发布于 2020-02-24 04:32:22
这是码头的一个令人困惑的方面。本质上,Kubernetes试图从容器注册表中提取图像,(通常)直到图像被推送到注册表时,它才能被提取。
当您使用docker [push|pull] ...时,您正在与(远程)容器注册中心交互。默认情况下(如果您没有指定它),您将与DockerHub交互,并且可能假定图像(除非另有标记)以DockerHub的https://docker.io作为前缀。如果您使用,您将更频繁地使用它的主机前缀,例如https://gcr.io。
当您在您的主机上构建容器时,直到您对图像进行docker push ...之前,它不在注册表中。
当您引用Kubernetes规范中的图像时,Kubernetes希望从注册表中提取图像。在您的示例中,blob-app不在注册表中,因此这将失败。
您可以运行本地注册表来解决此问题。您可以这样做的一种方法是使用Minikube @arghya回答。但是您也可以运行Docker自己实现其注册表规范的Docker映像,请参阅注册表。
或者,您可以将图像推送到可公开访问的注册表,例如DockerHub、Google容器注册表、码头,然后像使用mysql一样从注册表中引用图像。DockerHub有一个非常常用的免费层,它既允许公共存储库,也允许私有存储库(数量有限)。
https://stackoverflow.com/questions/60368992
复制相似问题