如何在 Minikube 中使用本地 Docker 镜像?


为什么要使用本地 Docker 镜像?

您可能会出于以下原因需要在本地测试 Pod:

  • 您的组织出于知识产权或安全原因不允许您将 Docker 镜像提交到公共仓库。
  • 您可能不想在开发过程中访问您的 ECR 主机。
  • 您可能只是在尝试一些东西,并希望在本地测试环境中进行测试,而无需将其提供给您的团队的其他成员。

您首先需要确保已设置以下命令。

eval $(minikube docker-env)

这实际上设置了以下环境变量。

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://127.0.0.1:[port-number]"
export DOCKER_CERT_PATH="/Users/[your-user]/.minikube/certs"
export MINIKUBE_ACTIVE_DOCKERD="minikube"

然后,您必须构建并标记镜像,以便您可以在 Kubernetes 资源(例如 Pod 或 Deployment)中指定它。

docker build -t minikube-image .

或从您本地已构建镜像列表中选择一个。

docker ps

在文件中以干运行模式创建 Pod 并将其写入文件,如下所示。

kubectl run website --image=minikube-image --dry-run=client -o yaml > website.yaml

使用您的编辑器(如 vi 或 vim)编辑 website.yaml 文件并将 imagePullPolicy 设置为 never。这将确保 Pod 永远不会尝试在线搜索镜像。

      apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: website
name: website
spec:
containers:
- image: minikube-image
name: website
imagePullPolicy: Never
resources: { }
dnsPolicy: ClusterFirst
restartPolicy: Always

然后使用创建或应用方法将镜像应用到服务器。

kubectl apply -f website.yaml 

如果这是您想更永久地使用的东西,那么也许在您的配置文件(如 .bash_profile 或 .zprofile)中设置 `eval $(minikube docker-env)` 命令可以避免您每次在终端中调用此命令。


祝您 Minikube 使用愉快!

jamie macdonald
jamie macdonald

KubeSmash

更新于:2024年11月18日

13 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告