在 RHEL 上安裝 Docker Engine
若要在 RHEL 上開始使用 Docker Engine,請確認您符合先決條件,然後按照安裝步驟操作。
先決條件
作業系統需求
若要安裝 Docker Engine,您需要下列其中一個 RHEL 版本的維護版本
- RHEL 8
- RHEL 9
解除安裝舊版本
在安裝 Docker Engine 之前,您需要解除安裝任何衝突的套件。
您的 Linux 發行版本可能提供非官方的 Docker 套件,這些套件可能與 Docker 提供的官方套件衝突。您必須在安裝 Docker Engine 的官方版本之前解除安裝這些套件。
$ sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runc
dnf
可能會報告您沒有安裝任何這些套件。
解除安裝 Docker 時,儲存在 /var/lib/docker/
中的映像檔、容器、磁碟區和網路不會自動移除。
安裝方法
您可以根據您的需求以不同的方式安裝 Docker Engine
您可以設定 Docker 的儲存庫並從中安裝,以便輕鬆安裝和升級。這是建議的方法。
您可以下載 RPM 套件,手動安裝,並完全手動管理升級。這在例如在沒有網際網路連線的 air-gapped 系統上安裝 Docker 等情況下很有用。
在測試和開發環境中,您可以使用自動化的便利腳本來安裝 Docker。
使用 rpm 儲存庫安裝
在新主機上第一次安裝 Docker Engine 之前,您需要設定 Docker 儲存庫。之後,您可以從儲存庫安裝和更新 Docker。
設定儲存庫
安裝 dnf-plugins-core
套件(提供管理 DNF 儲存庫的指令)並設定儲存庫。
$ sudo dnf -y install dnf-plugins-core
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
安裝 Docker Engine
安裝 Docker 套件。
若要安裝最新版本,請執行
$ sudo dnf 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
群組,但是預設不會將任何使用者新增至該群組。若要安裝特定版本,請先列出儲存庫中可用的版本
$ dnf list docker-ce --showduplicates | sort -r docker-ce.x86_64 3:27.3.1-1.el9 docker-ce-stable docker-ce.x86_64 3:27.3.0-1.el9 docker-ce-stable <...>
傳回的清單取決於啟用了哪些儲存庫,並且特定於您的 RHEL 版本(在此範例中由
.el9
後綴指示)。透過其完整限定套件名稱安裝特定版本,完整限定套件名稱是套件名稱 (
docker-ce
) 加上版本字串(第二欄),以連字號 (-
) 分隔。例如,docker-ce-3:27.3.1-1.el9
。將
<版本字串>
替換為所需的版本,然後執行下列指令進行安裝$ sudo dnf 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 時,都需要下載新的檔案。
在列表中選擇您的 RHEL 版本。
選擇適用的架構(
x86_64
、aarch64
或s390x
),然後前往stable/Packages/
。下載 Docker Engine、CLI、containerd 和 Docker Compose 套件的下列
rpm
檔案containerd.io-<版本>.<架構>.rpm
docker-ce-<版本>.<架構>.rpm
docker-ce-cli-<版本>.<架構>.rpm
docker-buildx-plugin-<版本>.<架構>.rpm
docker-compose-plugin-<版本>.<架構>.rpm
安裝 Docker Engine,將以下路徑更改為您下載套件的路徑。
$ sudo dnf install ./containerd.io-<version>.<arch>.rpm \ ./docker-ce-<version>.<arch>.rpm \ ./docker-ce-cli-<version>.<arch>.rpm \ ./docker-buildx-plugin-<version>.<arch>.rpm \ ./docker-compose-plugin-<version>.<arch>.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,請下載較新的套件檔案並重複安裝步驟,使用 dnf upgrade
代替 dnf install
,並指向新的檔案。
使用便利腳本來安裝
Docker 在 https://get.docker.com/ 提供了一個便利腳本,可以非互動方式將 Docker 安裝到開發環境中。不建議將便利腳本用於生產環境,但它有助於建立符合您需求的佈建腳本。另請參閱使用儲存庫安裝步驟,以了解使用套件儲存庫安裝的安裝步驟。腳本的原始碼是開源的,您可以在 GitHub 上的 docker-install
儲存庫