docker - 如何在 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 上拉取?
解决方案
您可以重用 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"]
另请查看本指南
推荐阅读
- java - Volley 在棒棒糖设备中收到 400 错误请求,但与邮递员合作
- r - 将页面添加到单页主题
- r - 强制转换为 R 中的 data.frame 时,来自日期序列 POSIXct 的时区丢失
- php - Laravel:如何创建一个新行并将其附加到我的模型
- php - PHP:加入两个数组
- bdd - 引诱报告中的场景
- javascript - 如何使用 jquery 设置重置选项
- sql-server - 如果变量具有任何值,则 SQL Server 中 where 子句中的 case 语句,否则比较当前
- android - Kotlin 中的 STRING_TOO_LARGE 字符串
- swift - 致命错误:意外发现 nil - 创建 UIImage 时