【发布时间】:2021-09-03 15:35:05
【问题描述】:
我正在尝试在以下软件堆栈上部署 Windows 容器映像
Windows 10 Pro + Docker Desktop + Embedded Kubernetes in docker desktop
由于某种原因,'embedded kubernetes' 无法识别 'local images',无论设置了什么 --image-pull-policy
Docker 镜像
PS C:\WINDOWS\system32> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myimg final 90c09acbfc59 15 hours ago 5.45GB
Kubectl 运行
PS C:\WINDOWS\system32> kubectl run --image=myimg:final tskuberun
Pod 输出
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 25s default-scheduler Successfully assigned default/tskuberun to docker-desktop
Normal BackOff 23s (x2 over 24s) kubelet Back-off pulling image "myimg:final"
Warning Failed 23s (x2 over 24s) kubelet Error: ImagePullBackOff
Normal Pulling 9s (x2 over 25s) kubelet Pulling image "myimg:final"
Warning Failed 8s (x2 over 25s) kubelet Failed to pull image "myimg:final": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.65.5:53: no such host
Warning Failed 8s (x2 over 25s) kubelet Error: ErrImagePull
但是,当我执行 docker run 时,它会拉取本地映像。以下按预期工作
PS C:\WINDOWS\system32> docker run myimg:final
我搜索了答案,但大多数链接都与 Unix 风格和 Minikube 相关。
只有少数链接与Docker desktop + embedded kubernetes 相关,但遗憾的是没有解决问题
我正在努力摆脱这个问题。非常感谢任何帮助
编辑
在进一步调查中,我发现'Docker desktop' 指的是本地图像,以防我选择选项"Switch to Linux Containers"
Kubectl 运行 Linux 镜像
PS C:\WINDOWS\system32> kubectl run --image=wphp --image-pull-policy=IfNotPresent lntest
PS C:\WINDOWS\system32> kubectl describe pod/lntest
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 40s default-scheduler Successfully assigned default/lntest to docker-desktop
Normal Pulled 2s (x4 over 39s) kubelet Container image "wphp" already present on machine
Normal Created 2s (x4 over 39s) kubelet Created container lntest
Normal Started 2s (x4 over 39s) kubelet Started container lntest
这个问题似乎只发生在“Windows 容器”上,即如果我选择了选项 'Switch to Windows Containers',Docker 桌面不会引用本地图像
【问题讨论】:
标签: docker kubernetes docker-desktop