在 SLES (s390x) 上安裝 Docker Engine
注意
此頁面上的安裝說明是指適用於 s390x 架構 (IBM Z) 上 SLES 的套件。SLES 不支援其他架構,包括 x86_64。
若要在 SLES 上開始使用 Docker Engine,請確認您符合先決條件,然後按照安裝步驟操作。
先決條件
作業系統需求
若要安裝 Docker Engine,您需要下列其中一個 SLES 版本的維護版本
- SLES 15-SP4 on s390x (IBM Z)
- SLES 15-SP5 on s390x (IBM Z)
您必須啟用 SCC SUSE
儲存庫。
您必須新增 OpenSUSE SELinux
儲存庫。預設不會新增此儲存庫。執行下列指令來新增它
$ opensuse_repo="https://download.opensuse.org/repositories/security:/SELinux/openSUSE_Factory/security:SELinux.repo"
$ sudo zypper addrepo $opensuse_repo
解除安裝舊版本
在安裝 Docker Engine 之前,您需要解除安裝任何衝突的套件。
您的 Linux 發行版本可能會提供非官方的 Docker 套件,這些套件可能會與 Docker 提供的官方套件衝突。在安裝 Docker Engine 的官方版本之前,您必須解除安裝這些套件。
$ sudo zypper remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
runc
zypper
可能會報告您沒有安裝任何這些套件。
解除安裝 Docker 時,儲存在 /var/lib/docker/
中的映像檔、容器、磁碟區和網路不會自動移除。
安裝方法
您可以根據您的需求以不同的方式安裝 Docker Engine
您可以 設定 Docker 的儲存庫 並從中安裝,以便輕鬆安裝和升級任務。這是建議的方法。
您可以下載 RPM 套件,手動安裝,並完全手動管理升級。這在例如在沒有網際網路存取權的離線系統上安裝 Docker 等情況下很有用。
在測試和開發環境中,您可以使用自動化的 便利性腳本 來安裝 Docker。
使用 rpm 儲存庫安裝
在您第一次於新的主機上安裝 Docker Engine 之前,您需要設定 Docker 儲存庫。之後,您可以從儲存庫安裝和更新 Docker。
設定儲存庫
設定儲存庫。
$ sudo zypper addrepo https://download.docker.com/linux/sles/docker-ce.repo
安裝 Docker Engine
安裝 Docker 套件。
若要安裝最新版本,請執行
$ sudo zypper install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
如果系統提示您接受 GPG 金鑰,請驗證指紋是否符合
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
,如果是,請接受它。此命令會安裝 Docker,但不會啟動 Docker。它也會建立一個
docker
群組,但是,預設情況下不會將任何使用者新增到該群組。若要安裝特定版本,請先列出儲存庫中可用的版本
$ sudo zypper search -s --match-exact docker-ce | sort -r v | docker-ce | package | 3:27.3.1-1 | s390x | Docker CE Stable - s390x v | docker-ce | package | 3:27.3.0-1 | s390x | Docker CE Stable - s390x
傳回的清單取決於啟用了哪些儲存庫,並且特定於您的 SLES 版本。
透過其完整套件名稱安裝特定版本,完整套件名稱是套件名稱 (
docker-ce
) 加上版本字串(第 2 欄),並以連字號 (-
) 分隔。例如,docker-ce-3:27.3.1
。將
<VERSION_STRING>
替換為所需的版本,然後執行以下命令進行安裝$ sudo zypper install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
此命令會安裝 Docker,但不會啟動 Docker。它也會建立一個
docker
群組,但是,預設情況下不會將任何使用者新增到該群組。啟動 Docker Engine。
$ sudo systemctl enable --now docker
這會將 Docker systemd 服務設定為在您啟動系統時自動啟動。如果您不希望 Docker 自動啟動,請改用
sudo systemctl start docker
。透過執行
hello-world
映像來驗證安裝是否成功$ sudo docker run hello-world
此命令會下載測試映像並在容器中執行它。當容器執行時,它會列印確認訊息並結束。
您現在已成功安裝並啟動 Docker Engine。
提示
嘗試在沒有 root 權限的情況下執行時收到錯誤?
docker
使用者群組存在但沒有包含任何使用者,這就是您需要使用sudo
執行 Docker 命令的原因。繼續前往 Linux 安裝後步驟 以允許非特權使用者執行 Docker 命令和其他選用設定步驟。
升級 Docker Engine
若要升級 Docker Engine,請按照安裝說明操作,選擇您要安裝的新版本。
從套件安裝
如果您無法使用 Docker 的 rpm
儲存庫來安裝 Docker Engine,您可以下載適用於您版本的 .rpm
檔案並手動安裝。每次您想要升級 Docker Engine 時,都需要下載一個新的檔案。
前往 https://download.docker.com/linux/sles/ 並選擇您的 SLES 版本。然後瀏覽至
s390x/stable/Packages/
並下載您要安裝的 Docker 版本的.rpm
檔案。安裝 Docker Engine,將以下路徑更改為您下載 Docker 套件的路徑。
$ sudo zypper install /path/to/package.rpm
Docker 已安裝但尚未啟動。已建立
docker
群組,但沒有使用者被新增到該群組。啟動 Docker Engine。
$ sudo systemctl enable --now docker
這會將 Docker systemd 服務設定為在您啟動系統時自動啟動。如果您不希望 Docker 自動啟動,請改用
sudo systemctl start docker
。透過執行
hello-world
映像來驗證安裝是否成功$ sudo docker run hello-world
此命令會下載測試映像並在容器中執行它。當容器執行時,它會列印確認訊息並結束。
您現在已成功安裝並啟動 Docker Engine。
提示
嘗試在沒有 root 權限的情況下執行時收到錯誤?
docker
使用者群組存在但沒有包含任何使用者,這就是您需要使用sudo
執行 Docker 命令的原因。繼續前往 Linux 安裝後步驟 以允許非特權使用者執行 Docker 命令和其他選用設定步驟。
升級 Docker Engine
若要升級 Docker Engine,請下載較新的套件檔案並重複安裝程序,使用 zypper -y upgrade
取代 zypper -y install
,並指向新的檔案。
使用便利腳本來安裝
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 zypper remove 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
您必須手動刪除任何已編輯的設定檔。
後續步驟
- 繼續前往 Linux 的安裝後步驟。