簡體   English   中英

Kubernetes 不使用 Docker for Desktop 拉取鏡像

[英]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

看一看: docker- desktop-windowsdockerdesktop-vs-minikube

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM