只有累積,沒有奇蹟

2019年2月13日 星期三

[Docker] Error : No matching manifest for unknown in the manifest list entries

問題 
安裝完 Docker 之後就像童心未泯的小朋友一樣,按耐不住心中的喜悅開始針對之前有興趣的 Application 嘗試一波,但對於還不會站就想跑的時候往往都會跌一身傷,今天在嘗試 docker pull image 時遇到失敗錯誤訊息為 "no matching manifest for windows/amd64 in the manifest list entries" ,這篇記錄遇到此問題時該如何解決。 

解決方式
使用 Docker pull redis 時在命令提示字元執行以下指令
PS C:\> docker pull redis
Using default tag: latest
latest: Pulling from library/redis
no matching manifest for unknown in the manifest list entries
在之前遇到此問題,首先先確認一下需要執行的應用程式是基於 Windows 環境
如果沒有,請切換 container 為 Linux container 
但是在 官方部落格 提到,從 Docker for Windows 18.02 開始,亦可以透過新功能 Experimental 解決此問題
Docker for Windows 18.02 now supports Linux and Windows containers running side-by-side via LCOW, using a single Docker daemon. 
因此,如果遇到此問題有兩種方式可以解決

Docker experimental
Experimental 是屬於 Docker Engine 實驗性功能,目前狀態屬於 sandbox 環境測試與評估使用
如果需要開啟設定,可以透過 /etc/docker/daemon.json 設定檔裡 Docker daemon 中的屬性 --experimental flag 設定啟用
{
    "experimental": true
}
使用 command 透過指令設定 
$ docker version -f '{{.Server.Experimental}}'
當然在 Docker for windows 的 GUI 介面也提供此設定調整
Step 1 : Docker 按右鍵 > Setting > Daemon > experimental 選項打勾

Switch to Linux container
透過指令進行切換 
& $Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon .
設定成功會顯示 

重新確認 
設定完畢或是切換完 container 後重新執行一次原本異常的指令,即可發現可正常執行
過程如下,打完收工拉
PS C:\> docker pull redis
Using default tag: latest
latest: Pulling from library/redis
6ae821421a7d: Pull complete
e3717477b42d: Pull complete
8e70bf6cc2e6: Pull complete
0f84ab76ce60: Pull complete
0903bdecada2: Pull complete
492876061fbd: Pull complete
Digest: sha256:dd5b84ce536dffdcab79024f4df5485d010affa09e6c399b215e199a0dca38c4
Status: Downloaded newer image for redis:latest
PS C:\>

參考
Docker Experimental Features
Docker: “no matching manifest for windows/amd64 in the manifest list entries”

0 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com