[英]Pulling image into Docker-compose file from docker desktop images?
[英]Kubernetes not pulling image with Docker for Desktop
我將 Docker 用於桌面和 Windows Server Core 容器。 我創建了一個 Docker 鏡像,如下所示:
FROM mcr.microsoft.com/windows/servercore:ltsc2019
#Download NodeJs
WORKDIR /downloads
ADD https://nodejs.org/dist/v12.18.3/node-v12.18.3-x64.msi nodejs.msi
#Install NodeJs
RUN msiexec.exe /qn /i nodejs.msi
RUN setx path "%path%;C:\Program Files\nodejs"
我使用命令docker build -t winnode:1.0 .
創建圖像,一切順利:我用我的 VS Code docker 擴展看到我的圖像已經創建。
現在我使用 Kubernetes yaml 文件來運行我的鏡像,如下所示:
apiVersion: v1
kind: Service
metadata:
name: winnode-svc
spec:
selector:
app: winnode
tier: webserver
ports:
- port: 3500
name: http
targetPort: http
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: winnode-dpl
spec:
replicas: 1
selector:
matchLabels:
app: winnode
tier: webserver
template:
metadata:
labels:
app: winnode
tier: webserver
spec:
containers:
- name: winnode
image: winnode:1.0
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
但是,kubernetes 正在嘗試從 docker 注冊表中拉取鏡像,並且找不到它。 我收到消息ErrImagePull
。 我用imagePullPolicy
搜索,答案是關於imagePullPolicy
。 我試過IfNotPresent
,我得到相同的ErrImagePull
。 (這是本示例)。
如果我指示Never
,我會收到錯誤: ErrImageNeverPull
。
我能做什么 ?
謝謝!
您需要將您的 winnode 映像推送到存儲庫。 Kubernetes 的設計目的不是從一台機器上運行。 將 repo 名稱設置為您的圖像標簽,您就可以開始了
仔細檢查kubectl
命令,它會找到“客戶端版本”,但要確保它列出了客戶端服務器。
否則,如果您沒有客戶端服務器,請啟用 Docker Kubernetes 集群。 例如,安裝 KinD 並創建您的第一個集群 - windows-wsl 。
您也可以嘗試安裝 Minikube。 示例如何安裝 minikube 並在 Windows 上運行 - install-minikube-windows 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.