首页 > 解决方案 > 如何在 Windows 10 上拉取本地构建的 docker 映像?

问题描述

我的操作系统是 windows 10 pro,我用 spring boot 开发。首先,我使用下面的 Dockerfile 构建 docker 映像。

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 镜像。

> docker image build -t blog-app:latest .

我从 docker 存储库中提取 mysql:latest 图像。并且mysql拉取也成功了。

> docker image pull mysql:latest .

我尝试使用这些 docker 图像生成 kubernetes pod。在 mysql:latest image 的情况下,生成 mysql pod 时不会出错。但是在生成 blog-app pod 时,无法拉取 blog-app:latest 镜像并抛出错误消息。下面是配置yaml文件。

apiVersion: apps/v1
kind: Pod
metadata:
  name: blog-system
spec:
  containers:
  - name: blog-app
    image: blog-app:latest
    args: ["-t", "-i"]

我不知道为什么在生成 pod 时无法拉取本地构建的图像。有什么流程可以推送本地 docker 存储库吗?本地构建的 docker 镜像如何在 Kuberetes 上拉取?

标签: dockerkubernetesminikube

解决方案


您可以重用 Minikube 中的 Docker 守护程序。以下是 Powershell 上的命令。

PS C:\minikube> minikube docker-env

PS C:\minikube> minikube docker-env | 调用表达式

docker image build -t blog-app:latest

像构建标签一样在 pod 规范中设置图像

将 imagePullPolicy 设置为 Never,否则 Kubernetes 会尝试下载镜像。


apiVersion: apps/v1
kind: Pod
metadata:
  name: blog-system
spec:
  containers:
  - name: blog-app
    image: blog-app:latest
    imagePullPolicy: Never
    args: ["-t", "-i"]

另请查看本指南


推荐阅读