在 RHEL 8.8 離線安裝 Docker

在 RHEL 8.8 離線安裝 Docker

Made with Flux.1-dev

前言

最近從公司接下了一個輔導客戶導入容器化的案子,其中一項任務是幫他們新採購的伺服器安裝容器運行環境。

Dell 主機;系統 RHEL 8.8;無對外網路;安裝「Docker」。
為什麼強調「Docker」......我該不該跟他們說 RHEL 內建 Podman 啊😐
Podman 也沒什麼不好,就只是客戶會撞牆在權限跟權限跟權限而已......還是算了

出發前一天先寫驗收要的手冊,想說
「沒什麼難的,照 Docker 官方手冊裝一裝就完事了~~🥳」
結果真的踩中地雷,於是就有了這篇文章的誕生🤣

準備裝機 USB

USB 大小選擇 16 GB 以上

下載 Docker 離線安裝包

Docker 官方手冊


https://docs.docker.com/engine/install/rhel/#install-from-a-package

準備 docker image 做測試 (可選)

tar 檔放 USB 帶去

docker save -o busybox.tar busybox
docker save -o nginx.tar nginx

安裝 RHEL

Red Hat 官方手冊


https://docs.redhat.com/en/documentation/red%5Fhat%5Fenterprise%5Flinux/8/html-single/performing%5Fa%5Fstandard%5Frhel%5F8%5Finstallation/index

開機時 F11 進 One-shot boot menu,選擇 RHEL 開機 USB

其餘依照客戶需求做設定,安裝完成後重啟

安裝 docker

Mount usb

mount /dev/sdb1 /mnt
cd /mnt
ls -alh

移除衝突套件 (for RHEL 8)

install docker-ce on redhat 8 - Stack Overflow


https://stackoverflow.com/a/60153726/8706033

dnf module disable container-tools
dnf remove runc

安裝依賴項

dnf install ./container-selinux(tab 按出檔案名)
dnf install ./libcgroup(tab 按出檔案名)

安裝所有 docker 相關 rpm

dnf install ./(用 tab 依序按出所有檔案)

啟用 docker

systemctl enable docker
systemctl start docker

確認 docker 成功安裝

docker -v
docker compose version

測試 docker (可選)

docker load -i busybox.tar
docker load -i nginx.tar
docker images

docker run --rm busybox echo "hello from busybox"
docker run --rm -d -p 8080:80 --name web nginx
curl http://localhost:8080
docker stop web

docker system prune -a