只有累積,沒有奇蹟

2019年1月30日 星期三

[Docker] Image operating system "windows" cannot be used on this platform

問題
接獲同事詢問在安裝完 Docker for Windows 之後,練習指令 docker pull image 時候跳出異常訊息,訊息內容為 image operating system "windows" cannot be used on this platform ,回想起自己一開始觀念不熟悉時也發生過類似問題,錯誤訊息如下所示
  1. PS C:\marcustung> docker pull someone/image:latest
  2. latest: Pulling from someone/image
  3. 65014b3c3121: Pulling fs layer
  4. 1329b41e943f: Waiting
  5. image operating system "windows" cannot be used on this platform
解決方案
在 Windows 10 周年的更新時宣布新增 Container 功能,透過安裝步驟可以在 Windows 10 上使用 Docker 運行 Linux 或是 Windows 容器,但無法同時運行兩種引擎,如果要切換可以透過 Docker for windows 的選單功能或是下指令進行切換引擎的動作,那麼如何知道目前使用什麼引擎呢 ? 可以透過指令  docker version 得知目前使用的引擎,如下圖所示紅色框框處顯示為 Linux/amd64
接著從錯誤訊息可以得知,所要執行 image 僅能在 window docker上跑,因此所要進行的動作很簡單就是把引擎切換到 windows 上 ( 預設安裝完會跑 Linux ),有兩種方式可以切換
使用指令
透過指令進行切換 
  1. & $Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon .
透過選單
在 Docker 選單按右鍵 > switch to windows container 
接著會跳出提示在切換期間無法管理 container,按下 switch 繼續 
看到鯨魚在一直游泳游泳游泳,然後就完成了
建議直接打指令方式切換,速度上與第二種差很多 XDD
切換完畢之後再透過指令 docker version 確認是否切換成功,已順利切換為 windows container
接著在重新 pull 稍早失敗的 image 即可正常
Happy coding !!

參考
build-your-first-docker-windows-server-container
run-linux-and-windows-containers-on-windows-10

Related Posts:

  • [.NET] ASP.NET Application 概述 ASP.NET 處理請求的兩個步驟 當用戶發送一個請求到IIS(這裡指IIS 5.0 & IIS 6.0),ASP.NET 處理請求的步驟有兩種 1. 建立一個可以處理用戶端傳來請求Request的環境(ASP.NET Environment),包括建立application object(應用程式)、Ruquest、Response、Context Object等物件來處理此Ruquest請求。 2. 環境被建立後,應用程式會透過m… Read More
  • [VS2017] The current .NET SDK does not support targeting .NET Core 2.1發生情境 最近在開發時遇到取完最新的source code Build時發生錯誤,Visual Studio error message 如下 The current .NET SDK does not support targeting .NET Core 2.1.  Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that su… Read More
  • [C#] 如何建立XML CDATA元素 摘要:C#如何建立XML CDATA元素 在與其他產品或服務Web services做溝通時,常常都會使用XML做資料交換的格式 最近遇到一個很特殊的案例,對方希望在傳過去的XML內容包兩層,第二層外面Tag要加上<![CDATA[" XML內容 "]]> XML文字內容只要被<![CDATA[和]]>包在裡面的,XML解析器在解析時就不會去解析裡面的內容,這樣的文字稱為Character Data … Read More
  • [.NET] ASP.NET 狀態管理(State Management):Session Session 狀態支援數種不同的資料儲存選項,簡單描述 Session 可用的狀態模式 InProc:存在Web伺服器的記憶體中;ASP.NET中預設的Session狀態設定,是最常用也是最方便的 Session 狀態模式,缺點是如果重新啟動伺服器,所有的Session資料將會遺失。 StateServer:儲存在 ASP.NET 狀態服務的處理序中;可以確保 Session 在 Web 應用程式重新啟動時保留下來,並且讓 Web 伺服陣… Read More
  • [.NET] ASP.NET 特殊資料夾 [Special Folders] 在Visual Studio 2008 建立新的Web網站時,會同時新增一個特別的資料夾叫做「App_Data」,此資料夾是預留給資料庫使用,如Sql Server 2005 Express版,副檔名為「.mdf」的檔案。ASP.NET中有一些特殊的資料夾名稱,可以在專案點右鍵 > 加入 > 加入ASP.NET資料夾;將特殊資料夾加到專案中 ASP.NET Special Folders    … Read More

0 意見:

張貼留言

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

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com