客戶端出於資安考量,都要求軟體離線安裝,前篇Redis離線安裝需求就是這樣來的。那麼,Docker呢?工程就有點大。
網路上說用yumdownloader --resolve docker-ce來下載離線安裝Docker所要的rpm檔是錯的,它只下載了docker-ce主要的rpm,真正要下載的指令如下:
repoquery -R --resolve --recursive docker-ce | xargs -r yumdownloader
但這有個壞處,連i686.rpm也下載,我這裡要的是x86_64的版本,所以只能下載後移除,避免誤裝。
下載後壓縮丟到離線的CentOS環境( 這裡是VirtualBox)進行安裝:
sudo rm *.i686.rpm # 閒雜rpm請離開。
sudo rpm -ivh --replacefiles --replacepkgs *.rpm # 安裝所有的rpm
sudo rm selinux-policy-mininum-3.13.1-279.e17.noarch.rpm
sudo rm selinux-policy-targeted-3.13.1-268.e17.noarch.rpm
sudo rm python-2.7.5-09.e17.x86_64.rpm
sudo rm device-mapper-*
sudo rpm -ivh --replacefiles --replacepkgs *.rpm # 安裝again
sudo yum install -y docker-ce-cli-19.03.7-3.e17.x86_64.rpm
sudo yum install -y containerd.io-1.4.3.-3.e17.x86_64.rpm
sudo yum install -y docker-ce-0.0.0.201904850101803.b13705a-0.e17.x86_64.rpm
sudo systemctl enable docker.service # 生效docker
sudo systemctl start docker.service # 啟動docker
故事還沒完,它沒帶docker-compose,所以先從https://github.com/docker/compose/releases
下載docker-compose-Linux-x86_64,它是個執行檔。
作法參考:https://truongnotes.wordpress.com/2020/11/25/install-docker-and-docker-compose-offline-under-centos7/
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v # 驗證
再來,以Redis Cluster為例做成image匯出成tar:
docker save -o redis-cluster.tar redis_cluster_demo_redis-node1:latest redis_cluster_demo_redis-node2:latest redis_cluster_demo_redis-node3:latest redis_cluster_demo_redis-node4:latest redis_cluster_demo_redis-node5:latest redis_cluster_demo_redis-node6:latest redis:6.0.3
得到redis-cluster.tar後上傳Virtual Box進行匯入:
docker load -i redis-cluster.tar