如何在 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 使用愉快!
广告