USB 大小選擇 16 GB ↑
- 在 Red Hat 下載 RHEL 安裝 ISO 檔: https://access.redhat.com/downloads
- 以 rufus 或是其它方式建立開機 USB: https://rufus.ie/zh_TW/
Docker 官方手冊: https://docs.docker.com/engine/install/rhel/#install-from-a-package
- 到這個網站 https://download.docker.com/linux/rhel/
- 選擇這次裝機版本 8.8 版 https://download.docker.com/linux/rhel/8/x86_64/stable/Packages/
- 下載以下套件的最新版 rpm
- containerd.io-version.x86_64.rpm
- docker-ce-version.x86_64.rpm
- docker-ce-cli-version.x86_64.rpm
- docker-buildx-plugin-version.x86_64.rpm
- docker-compose-plugin-version.x86_64.rpm
- 下載 libcgroup 和 container-selinux rpm
- 以上 rpm 檔案放在另一支 USB 裡帶去
tar 檔放 USB 帶去
docker save -o busybox.tar busybox
docker save -o nginx.tar nginx
這次的客戶主機有內建硬體 RAID,在開機時 F2 確認配置為 RAID 5
(RAID 5 是客戶機型出廠配置)
開機時 F11 進 One-shot boot menu,選擇 RHEL 開機 USB
- 注意若要創建其它用戶時 必須 授予 sudo 權限
- 硬碟配置選 Custom,並將
/var
切大一點,docker 佔空間的檔案會存在這
其餘依照客戶需求做設定,安裝完成後重啟
mount /dev/sdb1 /mnt
cd /mnt
ls -alh
https://stackoverflow.com/a/60153726/8706033
dnf module disable container-tools
dnf remove runc
dnf install ./container-selinux(tab 按出檔案名)
dnf install ./libcgroup(tab 按出檔案名)
dnf install ./(用 tab 依序按出所有檔案)
systemctl enable docker
systemctl start docker
docker -v
docker compose version
nmcli connection show
nmcli connection modify eno8303 ipv4.method auto
nmcli connection up eno8303
nmcli connection modify eno8303 connection.autoconnect yes
nmcli connection show
ip route show default
客戶需求: 僅回應 ping,其餘全部阻擋,且未來會再回復成開放狀態
firewall-cmd --state
未啟動的話將它啟動
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --permanent --new-zone=test
firewall-cmd --permanent --zone=test --set-target=DROP
firewall-cmd --permanent --zone=test --add-icmp-block=echo-request
firewall-cmd --permanent --zone=test --add-icmp-block=echo-reply
firewall-cmd --permanent --zone=test --add-icmp-block-inversion
firewall-cmd --reload
firewall-cmd --get-active-zones
ifconfig
如圖所示,eno8303 使用 public 設定檔;docker0 使用 docker 設定檔
firewall-cmd --permanent --zone=test --change-interface=eno8303
firewall-cmd --permanent --zone=test --change-interface=docker0
firewall-cmd --reload
firewall-cmd --get-active-zones
firewall-cmd --permanent --zone=public --change-interface=eno8303
firewall-cmd --permanent --zone=docker --change-interface=docker0
firewall-cmd --reload
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