總體思路:找一臺可以聯網的linux,下載docker的RPM依賴包而不進行安裝(yum localinstall),將所有依賴的rpm環境打包好,再在無網環境中解壓逐一安裝(rpm: --force --nodeps)。
提前準備docker的RPM依賴包
我這裏操作系統版本是 CentOS Linux release 7.9.2009 (Core)
:
默認的yum軟件源是http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock
國內加載這個比較慢,經常會報異常。建議添加國內的yum源地址。
-bash: yum-config-manager: 未找到命令
問題原因:系統默認沒有安裝這個命令 yum-config-manager ,這個命令在 yum-utils 包裏。
解決辦法:安裝 yum-utils 包
sudo yum -y install yum-utils
輸出“完畢!”標識安裝完成。
添加yum軟件源信息(國內有很多,我這裏添加阿里):
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
添加yum軟件源完成:
更新 yum 緩存:
sudo yum makecache fast
如圖:
下載所有安裝依賴到指定路徑下:
mkdir -vp /home/docker-rpm/
sudo yum install docker-ce --downloadonly --downloaddir=/home/docker-rpm/
如圖:
安裝 1 軟件包 (+16 依賴軟件包)
總下載量:98 M
安裝大小:361 M
解釋:標準的--downloadonly(只下載,不安裝) 的選項來達到這個目的。
將所有依賴的rpm環境打包:
sudo tar -czvf docker-ce-20-CentOS7.9-rpm.tar.gz docker-rpm/
無網環境安裝:
創建安裝腳本(install-docker-offline.sh):
#! /bin/bash
# author: xiongzaiqiren
# date: 2022-11-31
# usage: sh install-docker-offline.sh
# 安裝docker請執行我。
mypath=`pwd`
cd ${mypath}
yum -y localinstall *.rpm
會自動關聯軟件依賴關係“正在解決依賴關係 …… --> 解決依賴關係完成”:
啓動或重啓docker
手工啓動或重啓docker命令:
sudo systemctl status docker #查看啓動狀態(安裝完默認未啓動,需要手動執行啓動命令)
# 啓動docker
sudo systemctl start docker
# 重新啓動docker
sudo systemctl restart docker
# 重新加載unit配置文件
sudo systemctl daemon-reload
如圖:
新安裝好的docker很乾淨,沒有鏡像或容器: