只有累積,沒有奇蹟

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 時在命令提示字元執行以下指令
  1. PS C:\> docker pull redis
  2. Using default tag: latest
  3. latest: Pulling from library/redis
  4. 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 設定啟用
  1. {
  2. "experimental": true
  3. }
使用 command 透過指令設定 
  1. $ docker version -f '{{.Server.Experimental}}'
當然在 Docker for windows 的 GUI 介面也提供此設定調整
Step 1 : Docker 按右鍵 > Setting > Daemon > experimental 選項打勾

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

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

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

Related Posts:

  • [.NET] 在 Redis 批次新增 List 資料的方案選擇前言  專案上遇到有個情境是針對 Redis 的 List 做大量新增的動作,但在新增的同時又希望兼顧效能,因此這篇文章是研究在 StackExchange.Redis 提供的 API 中幾個新增 List 的方式,如何使用以及簡單測試多筆資料時消耗的時間比較,若是有不清楚或是錯誤的地方歡迎討論予糾正。 批次新增 List 型別  由於考量到使用情境是類似 Queue 順序性是重要的,因此是透過 Redis … Read More
  • [Redis] 在 Windows 下載與安裝 Redis 前言  最近因專案需求要在公司內部架設 Redis 作為 cache server 使用,Redis 是一個將資料存放在 memory 的database,以 key/value 方式存放相關資料,詳細介紹可以參考官網介紹這裡不在多做說明,這篇簡單分享初期在安裝 Redis 在 Windows 上的步驟與過程,如有謬誤歡迎高手給予指導。  安裝 Redis for Windows Redis 主要是運行在 Li… Read More
  • [Redis] 在 CentOS7 上安裝 Redis前言 之前已經介紹過 Redis 在 Windows 上的安裝與使用,今天要分享的是在 CentOS7 上安裝 Redis 的使用步驟與說明,由於是全新的機器,因此此篇會一起介紹 Docker 的安裝,若有問題歡迎提出一起討論或是給予指導 CentOS 安裝 Docker Docker 支援 CentOS7 之後的版本,因此不用在安裝套件,連線到 Linux 的工具可以參考 跨平台 SSH Client 工具 - Termi… Read More
  • [Redis] C# 存取 Redis - 使用 StackExchange.Redis前言  前面幾篇在介紹 Redis 的安裝以及使用 Redis Desktop Manager 工具,現在終於回到主題如何用 C# 存取 Redis 服務,在官方網站推薦的 .NET Redis client(s) 有很多種,討論度最高的為 StackExchange.Redis 其開發者在 StackExchange 公司工作且 Library 廣為 .NET 開發者推薦,這篇文章要介紹&nbs… Read More
  • [.NET] StackExchange.Redis.RedisServerException : 'ERR Error compiling script'問題  這幾天在對新專案做 POC,開始對 Redis Server 新增資料做測試,有個 Test Case 在使用 Lua script 新增多筆資料到 Redis Server 時候發生錯誤,錯誤訊息為  "StackExchange.Redis.RedisServerException: 'ERR Error compiling script (new function): user_sc… Read More

0 意見:

張貼留言

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

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com