如何在 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 使用愉快!
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP