在 Ubuntu 上安裝 Docker(4 種簡單方法)

已發表: 2022-12-05

Docker 是一種流行的工具,用於在稱為容器的包中開發和部署軟件。 Ubuntu 是最流行的 Linux 發行版之一,也是 Docker 良好支持的操作系統。

在 Ubuntu 上安裝 Docker 為您的開發項目創建了一個理想的平台,使用共享 Ubuntu 操作系統內核的輕量級虛擬機。 本教程將通過解釋實現這一目標的 4 種方法來幫助您入門。


更多關於 Docker

Docker 讓您可以在任何 Docker 主機上構建和運行應用程序,從而幫助實現應用程序的可移植性。 容器鏡像可以在任何 Docker 可用的地方使用而無需修改——從你的筆記本電腦到雲端。 這通過消除運行時環境之間的差異簡化了開發人員的體驗。 容器格式也很容易分佈在多個物理機器上,使您能夠輕鬆擴展應用程序以響應不斷變化的需求。

Docker 包含構建和運行容器映像所需的一切,無論它們來自 Docker Hub 和其他公共註冊表,還是您自己的 Dockerfile。

準備在 Ubuntu 上安裝 Docker

您可以在 Ubuntu 版本 18.04、20.04、21.10 和 22.04 上安裝最新的 Docker 版本。 支持 x64_64/AMD64、ARMhf、ARM64 和 S390x 架構。

您可以通過多種方式安裝 Docker,您的選擇將取決於您需要的功能和您首選的包管理方法。 您將在本指南中了解所有可能的選項。

正在為您的下一個大型應用程序尋找完美的平台? Docker 可能是答案......在本指南中了解如何安裝它點擊推

選擇 Docker 風味

Linux 上的 Docker 傳統上僅限於終端。 一個正常運行的安裝包括 Docker Engine,一個運行容器的守護進程,以及用於與守護進程交互的docker命令行界面 (CLI)。

Docker Desktop 是使用 Docker 的另一種方式。 它以前僅在 Windows 和 Mac 上可用,於 2022 年 5 月針對 Linux 推出。Ubuntu 上的 Docker Desktop 需要 AMD64 處理器和 Ubuntu 21.10 或 22.04。 它提供用於管理容器的圖形界面、集成的 Kubernetes 集群以及對第三方擴展的支持。 Docker Desktop 還為您提供了docker和 Docker Compose CLI。

Docker Desktop 與 Docker Engine 的不同之處在於它使用虛擬機來運行您的容器(這就是 Windows 和 MacOS 用戶需要 Docker Desktop 的原因)。 儘管可以在 Ubuntu 上同時使用這兩種版本,但您可能會發現docker CLI 版本之間存在衝突。 最好選擇一個並堅持下去。 如果您對自己的終端感到滿意並希望獲得最佳支持和性能,請選擇 Docker Engine。 Docker Desktop 的 VM 使其稍重一些,但如果您想要一個集成的 UI 或計劃使用 Kubernetes,它是更好的選擇。

在 Ubuntu 上安裝 Docker 引擎

Docker 引擎是在 Ubuntu 上運行 Docker 的標準方式。 它適用於所有受支持的版本和環境,從本地 Ubuntu 桌面計算機到您的 Ubuntu 服務器雲主機。 在繼續之前,請確保您運行的是 18.04 或更高版本的 Ubuntu 版本。

Docker Engine有3種不同的安裝方式:

  1. 官方 Ubuntu apt存儲庫
  2. 獨立的 Debian 軟件包 ( .deb )
  3. 自動安裝腳本

選項 1,即 Ubuntu apt存儲庫,是最常用的。 它將 Docker 添加到你的包列表中,這樣你就可以通過運行apt upgrade輕鬆安裝未來的更新。 選項 2 不支持自動更新,但非常適合在氣隙離線系統上安裝 Docker。 自動安裝腳本是最簡單的入門方法,但僅供開發使用。 Docker 建議不要在生產環境中使用它。

當您使用生產系統、想要輕鬆更新或需要在所有環境中使用相同的機制時,請使用apt存儲庫。

如果您想在自己的機器上試驗 Docker 時獲得快速設置體驗,請使用自動安裝腳本。

1. 使用 apt 存儲庫安裝 Docker

Docker 將包發佈到它自己的apt存儲庫。 您需要將此存儲庫添加到您的apt源列表中,否則,您的apt安裝將無法找到 Docker 包。

首先更新現有的包列表並為以下步驟安裝一些依賴項。 ca-certificatescurlgnupglsb_release工具將用於為您的系統下載正確的 Docker apt存儲庫詳細信息和簽名密鑰。 儘管您可能已經獲得了這些包,但確保它們可用也無妨。

 $ sudo apt update $ sudo apt install ca-certificates curl gnupg lsb-release

接下來,使用 apt 註冊 Docker 的 GPG 密鑰環。 這將使apt驗證您安裝的 Docker 包。

 $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ sudo chmod a+r /etc/apt/keyrings/docker.gpg

curl命令為 Ubuntu 下載 Docker 的 GPG 密鑰,將其轉換回標準的 OpenGPG 編碼,並將其保存到 apt 的密鑰環目錄中。 chmod用於設置密鑰環文件的權限,以便apt可靠地檢測到它。

現在您可以將 Docker 包源添加到您的系統中。 運行以下命令:

 $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

這使用 shell 替換來自動檢測系統的體系結構,例如 AMD64 或 ARM64,並下載適當的包列表。 它將使用之前添加的 GPG 密鑰進行驗證。 存儲庫作為新包列表添加到apt /etc/apt/sources.list.d directory.

再次更新您的包列表,以便apt知道 Docker 包存在:

 $ sudo apt update

現在您可以使用apt install命令將 Docker 的組件添加到您的系統中。 您將安裝最新版本的 Docker 社區版 (CE)。 需要安裝三個包:

  • docker-ce :Docker 引擎守護進程。
  • docker-ce-cli :您將與之交互的 Docker CLI。
  • containerd.io :稱為 containerd 的容器運行時,它啟動並運行您的容器。
 $ sudo apt install docker-ce docker-ce-cli containerd.io

2. 使用 Debian 包安裝 Docker

官方.deb包易於設置,但您必須手動下載並安裝每個新版本。 包託管在一個簡單的文件服務器上。 首先導航到 Docker 的發行說明頁面,找到最新的可用版本號,例如 20.10.20。 接下來,也可以前往 containerd 的 GitHub 頁面查看其版本號。 它看起來像 1.6.8。

現在您可以運行以下命令序列來為您的平台下載正確的軟件包集。 將<DOCKER_VERSION><CONTAINERD_VERSION>分別替換為當前的 Docker 和 containerd 版本號。

 $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce.deb $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce-cli_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce-cli.deb $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/containerd.io_<CONTAINERD_VERISON>-1_amd64.deb -o containerd.deb

您還可以通過在瀏覽器中訪問您的 Ubuntu 版本的目錄列表來下載文件並檢查所有可用版本。

下載 Docker CE、CLI 和 containerd 包後,使用以下命令安裝它們:

 $ sudo apt install ./docker-ce.deb ./docker-ce-cli.deb ./containerd.deb

如果您在沒有使用上面提供的腳本的情況下手動下載了軟件包,請調整文件名。

3.使用安裝腳本安裝Docker

Docker 的便利腳本自動安裝所有 Docker 組件。 它是非交互式的,因此您可以坐等系統為您準備好。

首先下載腳本:

 $ curl -fsSL https://get.docker.com -o get-docker.sh

現在以 root 權限運行腳本:

$ sudo sh get-docker.sh Executing docker install script ...

等待腳本完成。 您應該會看到一條確認消息,顯示 Docker 已安裝。

該腳本旨在成為一種放之四海而皆準的解決方案。 如果不直接修改腳本的源代碼,您就無法自定義它的功能。 它也不是為執行 Docker 更新而設計的,因為它不會將依賴項更新到最新版本。

確保 Docker 引擎在 Ubuntu 上運行

無論您使用哪種安裝方法,您都應該通過啟動容器來確保一切正常:

 $ sudo docker run hello-world

您會看到 Docker 客戶端從 Docker Hub 存儲庫中將hello-world:image拉到您的機器上:

 Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625 Status: Downloaded newer image for hello-world:latest

然後一個新容器將自動啟動。 “hello-world”啟動鏡像被配置為運行一個簡單的命令,輸出一些關於 Docker 的基本信息,然後立即退出:

 Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

看到上面顯示的輸出意味著 Docker 已經可以使用了。 守護進程成功地從 Docker Hub 中提取了 hello-world:latest 圖像,並使用它啟動了一個容器。 從“Hello from Docker”行開始的所有內容都是由容器內的進程發出的。

在 Ubuntu 上設置 Docker 引擎權限

全新的 Docker Engine 安裝通常需要 root 權限才能運行docker CLI 命令。 您需要在每個命令前加上sudo前綴,這很不方便。

在使用上述步驟安裝 Docker Engine 後,您可以通過將自己添加到docker組來避免此要求。 此可選更改為您提供了以普通用戶身份運行docker命令的權限,無需sudo ,從而簡化了您的 CLI 體驗。

確保docker用戶組存在:

 $ sudo groupadd docker

然後將自己添加到其中:

為停機和 WordPress 問題苦苦掙扎? Kinsta 是旨在節省您時間的託管解決方案! 查看我們的功能
$ sudo usermod -aG docker $USER

如果您之前使用sudo運行過任何docker命令,則需要修復~/.docker目錄的權限:

 $ sudo chown $USER:$USER /home/$USER/.docker -R $ sudo chmod g+rwx $HOME/.docker -R

這確保允許您自己的用戶帳戶讀取和寫入目錄中的文件。

註銷您的系統並重新登錄,以便您的新組成員資格生效。 嘗試在沒有sudo的情況下運行docker命令:

 $ docker run hello-world

此安裝後步驟完成了 Ubuntu 上的 Docker 安裝過程。 守護進程已經配置為自動啟動,因此您不必手動設置服務。 如果您計劃進行高級安裝,請參閱 Docker 用戶手冊,了解有關如何配置自定義網絡、日誌記錄和卷存儲管理的說明。

將 Docker Compose 添加到您的 Ubuntu 安裝

Docker Compose 是一種流行的 Docker 配套工具,可以更輕鬆地處理使用多個容器的應用程序。 雖然docker CLI 的每個命令僅針對一個容器,但docker compose可以通過每個操作啟動和停止多個容器。 這簡化了管理具有獨立前端、後端和數據庫服務的系統。

Docker Compose 現在作為docker CLI 的一部分提供。 使用官方安裝腳本安裝Docker時會包含Compose V2插件。 如果您使用該方法,它也可以在apt中使用:

 $ sudo apt install docker-compose-plugin

或者,您可以下載最新的.deb存檔並手動安裝:

 $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb -o docker-compose-plugin.deb $ sudo apt install -i ./docker-compose-plugin.deb

通過嘗試docker compose version命令檢查 Compose 是否正常工作:

 $ docker compose version Docker Compose version v2.6.0

在 Ubuntu 上安裝 Docker 桌面

雖然 Docker Engine 僅限於僅 CLI 體驗,但 Docker Desktop 提供圖形管理界面、內置 Kubernetes 支持和可選的第三方擴展,可幫助簡化您的容器工作流程。 當您希望在自己的工作站上輕鬆使用時,這是一個不錯的選擇。

要安裝 Docker Desktop,首先使用apt安裝一些依賴項:

 $ sudo apt update $ sudo apt install ca-certificates curl gnupg lsb-release

接下來,運行以下一組命令來添加 Docker 的apt存儲庫。 儘管 Docker Desktop 不包含在存儲庫中,但其中的包被 Desktop 的 Debian 存檔引用為依賴項。

 $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ sudo chmod a+r /etc/apt/keyrings/docker.gpg $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null $ sudo apt update

curl命令為 Ubuntu 下載 Docker 的 GPG 密鑰,將其轉換回標準的 OpenGPG 編碼並將其保存到apt密鑰環目錄。 chmod用於設置密鑰環文件的權限,以便apt可靠地檢測到它。

從文檔中的鏈接下載 Docker Desktop Debian 存檔。 這將提供適用於 Linux 的 Docker Desktop 的最新穩定版本。 使用apt安裝包,替換為您下載的版本號:

 $ sudo apt install ./docker-desktop-4.11.0-amd64.deb

Docker Desktop 現在將顯示在您的應用程序啟動器中。 使用啟動器啟動 Docker Desktop 並打開 UI。 您也可以在終端中運行docker 、 docker docker composekubectl命令。 該應用程序還會向您的 shell 托盤添加一個菜單,顯示當前 Docker Desktop 狀態並讓您執行一些快速操作。

首次運行 Docker Desktop 時,系統會提示您接受服務協議。 如果您同意,請按接受按鈕,然後等待 Docker Desktop 啟動其虛擬機。

片刻之後,儀表板將加載。 它提供了從流行圖像創建新容器的快捷方式,避免了冗長的終端命令。

在 Ubuntu 上運行的 Docker Desktop 的屏幕截圖。
Docker 桌面安裝在 Ubuntu 上。

DevKinsta:用於 WordPress 的 Docker 桌面

在 Docker 的基礎上構建的專業解決方案為特定技術提供了更輕鬆的體驗。 DevKinsta 是一個免費的本地開發工具,用於構建 WordPress 主題和插件,它使用 Docker 來完全隔離和保護您的 WordPress 站點。 它使啟動和自定義新的 WordPress 項目變得快速而簡單,而無需您自己設置服務器。 準備就緒後,您可以直接推送到 Kinsta 平台以部署您的實時站點。

您可以在 MacOS、Windows 和 Ubuntu 上安裝 DevKinsta。

想讓您的開發過程小菜一碟嗎? 在你的下一個項目中嘗試 Ubuntu 上的 Docker! 這是安裝方法️ 點擊推

概括

Docker 是大多數開發人員開始使用容器的方式。 您可以輕鬆地在您的 Ubuntu 系統上安裝 Docker,作為 Docker Engine 或新的 Docker Desktop。 安裝 Docker 後,您將完全具備構建和運行容器的能力,從而簡化開發並減少環境之間的差異。

如果您正在開發 WordPress 主題和插件,DevKinsta 可以簡化創建本地開發環境和部署站點的過程。