只有累積,沒有奇蹟

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 ,回想起自己一開始觀念不熟悉時也發生過類似問題,錯誤訊息如下所示
PS C:\marcustung> docker pull someone/image:latest
latest: Pulling from someone/image
65014b3c3121: Pulling fs layer
1329b41e943f: Waiting
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 ),有兩種方式可以切換
使用指令
透過指令進行切換 
& $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

0 意見:

張貼留言

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

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com