在 Ubuntu 上安裝 Docker Engine
若要在 Ubuntu 上開始使用 Docker Engine,請確認您符合先決條件,然後按照安裝步驟操作。
先決條件
防火牆限制
警告
在安裝 Docker 之前,請務必考量下列安全性含義和防火牆不相容性。
- 如果您使用 ufw 或 firewalld 來管理防火牆設定,請注意,當您使用 Docker 公開容器埠時,這些埠會繞過您的防火牆規則。如需詳細資訊,請參閱Docker 和 ufw。
- Docker 僅與
iptables-nft
和iptables-legacy
相容。安裝 Docker 的系統不支援使用nft
建立的防火牆規則。請確認您使用的任何防火牆規則集都是使用iptables
或ip6tables
建立的,並且您已將它們新增至DOCKER-USER
鏈,請參閱封包過濾和防火牆。
作業系統需求
若要安裝 Docker Engine,您需要下列 Ubuntu 版本的 64 位元版本
- Ubuntu Oracular 24.10
- Ubuntu Noble 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS)
- Ubuntu Focal 20.04 (LTS)
適用於 Ubuntu 的 Docker Engine 與 x86_64(或 amd64)、armhf、arm64、s390x 和 ppc64le (ppc64el) 架構相容。
解除安裝舊版本
在安裝 Docker Engine 之前,您需要解除安裝任何衝突的套件。
您的 Linux 發行版本可能提供非官方的 Docker 套件,這些套件可能與 Docker 提供的官方套件衝突。在安裝 Docker Engine 的官方版本之前,您必須解除安裝這些套件。
要解除安裝的非官方套件為
docker.io
docker-compose
docker-compose-v2
docker-doc
podman-docker
此外,Docker Engine 依賴於 containerd
和 runc
。Docker Engine 將這些依賴項捆綁成一個套件:containerd.io
。如果您先前已安裝 containerd
或 runc
,請將其卸載,以免與 Docker Engine 捆綁的版本衝突。
執行以下命令以卸載所有衝突的套件
$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
apt-get
可能會回報您沒有安裝這些套件。
卸載 Docker 時,儲存在 /var/lib/docker/
中的映像、容器、磁碟區和網路不會自動移除。如果您想全新安裝,並且希望清除任何現有資料,請閱讀卸載 Docker Engine章節。
安裝方法
您可以根據需求以不同的方式安裝 Docker Engine
Docker Engine 與適用於 Linux 的 Docker Desktop捆綁在一起。這是入門最簡單快捷的方式。
從Docker 的
apt
儲存庫設定和安裝 Docker Engine。手動安裝並手動管理升級。
使用便利腳本。僅建議用於測試和開發環境。
使用 apt
儲存庫安裝
在新的主機上首次安裝 Docker Engine 之前,您需要設定 Docker apt
儲存庫。之後,您可以從儲存庫安裝和更新 Docker。
設定 Docker 的
apt
儲存庫。# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
注意
如果您使用 Ubuntu 的衍生發行版,例如 Linux Mint,您可能需要使用
UBUNTU_CODENAME
取代VERSION_CODENAME
。安裝 Docker 套件。
要安裝最新版本,請執行
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
要安裝特定版本的 Docker Engine,請先列出儲存庫中可用的版本
# List the available versions: $ apt-cache madison docker-ce | awk '{ print $3 }' 5:27.3.1-1~ubuntu.24.04~noble 5:27.3.0-1~ubuntu.24.04~noble ...
選擇所需的版本並安裝
$ VERSION_STRING=5:27.3.1-1~ubuntu.24.04~noble $ sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
透過執行
hello-world
映像來驗證安裝是否成功$ sudo docker run hello-world
此命令會下載測試映像並在容器中執行它。當容器執行時,它會列印確認訊息並結束。
您現在已成功安裝並啟動 Docker Engine。
提示
嘗試以非 root 身分執行時收到錯誤?
docker
使用者群組存在但未包含任何使用者,這就是您需要使用sudo
執行 Docker 命令的原因。繼續Linux 安裝後步驟以允許非特權使用者執行 Docker 命令和其他選用設定步驟。
升級 Docker Engine
要升級 Docker Engine,請按照安裝說明的步驟 2 操作,選擇您要安裝的新版本。
從套件安裝
如果您無法使用 Docker 的 apt
儲存庫來安裝 Docker Engine,您可以下載適用於您版本的 deb
檔案並手動安裝。每次要升級 Docker Engine 時,您都需要下載一個新檔案。
在清單中選擇您的 Ubuntu 版本。
前往
pool/stable/
並選擇適用的架構(amd64
、armhf
、arm64
或s390x
)。下載 Docker Engine、CLI、containerd 和 Docker Compose 套件的以下
deb
檔案containerd.io_<版本>_<架構>.deb
docker-ce_<版本>_<架構>.deb
docker-ce-cli_<版本>_<架構>.deb
docker-buildx-plugin_<版本>_<架構>.deb
docker-compose-plugin_<版本>_<架構>.deb
安裝
.deb
套件。將以下範例中的路徑更新為您下載 Docker 套件的位置。$ sudo dpkg -i ./containerd.io_<version>_<arch>.deb \ ./docker-ce_<version>_<arch>.deb \ ./docker-ce-cli_<version>_<arch>.deb \ ./docker-buildx-plugin_<version>_<arch>.deb \ ./docker-compose-plugin_<version>_<arch>.deb
Docker 守護程式會自動啟動。
透過執行
hello-world
映像來驗證安裝是否成功$ sudo service docker start $ sudo docker run hello-world
此命令會下載測試映像並在容器中執行它。當容器執行時,它會列印確認訊息並結束。
您現在已成功安裝並啟動 Docker Engine。
提示
嘗試以非 root 身分執行時收到錯誤?
docker
使用者群組存在但未包含任何使用者,這就是您需要使用sudo
執行 Docker 命令的原因。繼續Linux 安裝後步驟以允許非特權使用者執行 Docker 命令和其他選用設定步驟。
升級 Docker Engine
要升級 Docker Engine,請下載較新的套件檔案並重複安裝程序,指向新檔案。
使用便利腳本安裝
Docker 在https://get.docker.com/ 提供了一個便利腳本,可以非互動方式將 Docker 安裝到開發環境中。便利腳本不建議用於生產環境,但它對於建立適合您需求的佈建腳本很有用。另請參閱使用儲存庫安裝步驟,以了解使用套件儲存庫安裝的步驟。腳本的原始碼是開源的,您可以在 GitHub 上的docker-install
儲存庫 中找到它。
在本地執行之前,務必檢查從網際網路下載的腳本。安裝之前,請先熟悉便利腳本的潛在風險和限制
- 腳本需要
root
或sudo
權限才能執行。 - 腳本會嘗試偵測您的 Linux 發行版和版本,並為您設定您的套件管理系統。
- 腳本不允許您自訂大多數安裝參數。
- 腳本會安裝依賴項和建議,而無需確認。根據您主機的目前設定,這可能會安裝大量的套件。
- 根據預設,腳本會安裝 Docker、containerd 和 runc 的最新穩定版本。使用此腳本佈建機器時,可能會導致 Docker 意外的主要版本升級。在部署到您的生產系統之前,請務必在測試環境中測試升級。
- 腳本並非設計用於升級現有的 Docker 安裝。使用腳本更新現有安裝時,依賴項可能不會更新到預期版本,導致版本過時。
提示
在執行之前預覽腳本步驟。您可以使用
--dry-run
選項執行腳本,以了解腳本在叫用時將執行的步驟$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh ./get-docker.sh --dry-run
此範例從https://get.docker.com/ 下載腳本,並執行它以在 Linux 上安裝 Docker 的最新穩定版本
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>
您現在已成功安裝並啟動 Docker Engine。docker
服務會在基於 Debian 的發行版上自動啟動。在基於 RPM
的發行版(例如 CentOS、Fedora、RHEL 或 SLES)上,您需要使用適當的 systemctl
或 service
命令手動啟動它。如訊息所示,非 root 使用者預設無法執行 Docker 命令。
以非特權使用者身分使用 Docker,或是在無 root 模式下安裝?
安裝腳本需要
root
或sudo
權限才能安裝和使用 Docker。如果您想授予非 root 使用者 Docker 的存取權限,請參閱Linux 的安裝後步驟。您也可以在沒有root
權限的情況下安裝 Docker,或是設定為在無 root 模式下執行。有關在無 root 模式下執行 Docker 的說明,請參閱以非 root 使用者身分執行 Docker 守護程式(無 root 模式)。
安裝預發行版本
Docker 也在https://test.docker.com/ 提供了一個便利腳本,用於在 Linux 上安裝 Docker 的預發行版本。此腳本與 get.docker.com
上的腳本相同,但會將您的套件管理程式設定為使用 Docker 套件儲存庫的測試通道。測試通道包含 Docker 的穩定版和預發行版本(測試版、候選版本)。使用此腳本可以搶先體驗新版本,並在它們作為穩定版發布之前在測試環境中評估它們。
要從測試通道安裝最新版本的 Docker on Linux,請執行
$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sudo sh test-docker.sh
使用便利腳本後升級 Docker
如果您使用便捷腳本安裝 Docker,則應直接使用套件管理器升級 Docker。 重新執行便捷腳本沒有任何好處。 如果它嘗試重新安裝主機上已存在的儲存庫,重新執行它可能會導致問題。
解除安裝 Docker Engine
解除安裝 Docker Engine、CLI、containerd 和 Docker Compose 套件。
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
主機上的映像檔、容器、磁碟區或自訂設定檔不會自動移除。 若要刪除所有映像檔、容器和磁碟區:
$ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd
移除來源清單和金鑰環。
$ sudo rm /etc/apt/sources.list.d/docker.list $ sudo rm /etc/apt/keyrings/docker.asc
您必須手動刪除任何已編輯的設定檔。
後續步驟
- 繼續前往 Linux 的安裝後步驟。