安裝完 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 意見:
張貼留言