當前文章

【多平台通用】2023 Docker 入門指南,以 Win 平台為起點的教學

【多平台通用】2023 Docker 入門指南,以 Win 平台為起點的教學

【多平台通用】2023 Docker 入門指南,以 Win 平台創建為起點的教學

在 Windows 和 Linux 上確保 Docker 容器的一致性

導讀

Docker 的一大優勢是它的跨平台特性。不論是在 Windows、Mac 還是 Linux,Docker 都能確保容器內的應用程式運行的效果是一致的。本文將指導您如何在 Windows 上設置 Docker 容器,然後將其移至 Linux,並驗證兩者的運行效果是否一致。

正文:

1. Docker 的跨平台特性簡介
  • Docker 是一個開源專案,使用容器化 (container) 技術來封裝應用程式和其依賴套件 (dependency package) ,以確保在不同環境中的一致性和可移植性。該工具能讓開發、部署和運行應用程式變得更簡單、更快速,以致於它很受各領域工程師的青睞。
  • Docker 容器的可攜性: Docker 的跨平台可攜特性主要源於其容器化技術,這使得開發者可以在一個環境中打包應用程式和所有依賴項,然後無縫地運行在另一個環境中。這意味著我們可以在 Windows 機器上建立和測試 Docker 容器,然後將其輕鬆移至 Linux 伺服器或 macOS 機器上,而不需要進行任何修改。這大大簡化了應用程式的部署和維護過程,並確保了運行環境的一致性,無論設備硬體或系統上的區別。
2. 在 Windows 上安裝和設置 Docker
  • 相信 Windows 仍然是最廣為人知,且最讓人倍感親切的 PC 作業系統了(即便有時候遇到藍屏當機會讓人抓狂);我們就在 Windows 電腦中來入門這套開發者的神器工具吧!
1. 在 Windows 上安裝和設置 Docker
  1. 下載 Docker Desktop:首先我們要先到 Docker Desktop 官方網站 下載適合 Windows 系統的版本。
    圖1:從 Docker Desktop 官方網站下載對應的 Docker Installer。
  1. 安裝 Docker Desktop:安裝對應系統的安裝包。
    圖2:Windows 上的 Docker 會建議用 WSL2 來達成,以前是藉 Hyper-V,兩者都行,此處我選擇按照建議以 WSL2 機制來進行。
  1. 啟動 Docker:安裝完成後, Windows 電腦很可能被要求重新啓動,於是重新啓動後,我們打開 Docker Desktop。
    figcaption>圖3:安裝過程截圖,而安裝完成後,Windows 電腦通常會被要求「重新啓動」;相較於 Linux 環境只需要登出後再登入,Windows 電腦會稍稍麻煩一些。
創建和運行一個簡單的 Docker 容器
圖4:Windows 上 Docker 首次啓動的截圖,會要求閱讀協議,接受後就可以使用囉。

安裝完成後,通常需要測試一下軟體是否可用,而 Docker 官方有提供相當簡單運作的範例,我們就借用該範例來測試效果吧!

Docker Image: hello-world

首先,由於「下載官方提供的容器映像」這件事情是需要「註冊帳號」方可取得資格,所以先到 Docker 官方頁面去創建一個自己的帳號吧!

  1. 建立完帳號並登入,右上角就會寫出你的帳號名。
    圖:右上角若顯示 Sign-in 代表你還沒登入,這時候可能會下載不了 hello-world 的範例。

    到官網按照流程註冊,若操作正確,就會在登入時得到以下提示,讓 Docker 成功登入你的帳號。

    圖:這是直接在瀏覽器上至官網進行註冊並登入,它會要求連動 Docker 應用程式,此時就點擊 Open 即可讓程式成功登入。

  1. 打開終端機,我們透過指令來操作 Docker。(雖然在 Windows 上可以藉由 GUI 達成,但通常在 MacOS 和 Linux 上,都是以指令的形式進行操作)
    圖:此時也可以順應著 Docker 官方建議,先輸入 wsl —update,讓 wsl kernel 更新到和 Docker 最爲相容的版本。而測試 Docker 本身的指令則是下方的 docker run hello-world。
  1. 輸入 docker run hello-world。這會下載一個簡單的 Docker 映像並運行。
    圖:假如遇到如圖上的 toomanyrequests 錯誤提示,說明你沒有足夠的權限額度來下載該範例;對於新入門者而言,這很可能是你還沒「註冊並登入帳號」,所以沒有權限。
  1. 正確執行的話,你會看到以下內容,其中 Hello from Docker! 就是這個 image 的主要內容。
    圖:其實在 Hello from Docker 的下一行,也是官方在提示你安裝成功也可以正確執行囉!

既然我們提到 Docker 有多平台相容性,那接著就可以嘗試將這個 Docker Container 轉移到其他平台進行測試囉!

3. 將 Docker 容器從 Windows 匯出
  • 使用 docker save 命令匯出容器映像
  • 將映像文件傳輸到 Linux 主機(例如使用 SCP、FTP 或其他方法)

常見問題與解決方法

在 Docker 安裝和使用過程中,您可能會遇到一些常見問題。在這裡,我們會列出一些問題和相對應的解決方法,以供您參考。

Q1: 在進行 docker load -i 時,Debian 提示 Docker 並未在背景運作,該怎麼辦?

解決方法:

這個問題通常是因為 Docker 服務沒有啟動。您可以使用以下命令來手動啟動 Docker 服務:

sudo /etc/init.d/docker start

執行這個命令後,Docker 服務應該會開始運行。

Q2: 同樣在進行 docker load -i 時,出現「permission denied while trying to connect to the Docker daemon socket」的錯誤,怎麼解決?

解決方法:

這個問題通常是因為當前用戶沒有足夠的權限來訪問 Docker 守護進程。您可以使用以下命令將當前用戶添加到 Docker 群組:

usermod -aG docker $USER

注意:執行這個命令後,您可能需要重新登錄或重啟系統以使更改生效。

結語

透過 Docker,我們可以確保在不同的平台上得到相同的運行效果,從而大大提高了開發和部署的效率。希望閱讀的朋友能從這份基本指南入門,而後續就能夠更深入地了解 Docker 的跨平台特性,並能夠在實際的工作中加以應用。

沒有留言:

張貼留言

Suz 數位式 僅供學術交流使用,版面設計原始提供者: Templateism 維護修改者: Suz | Google Blogger Copyright © 2014-2021

主題圖片來源:richcano. 技術提供:Blogger.