如何在 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 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.