Backgroud
有時客戶給的服務器在內網,不能上網,爲了方便程序的安裝部署,可以藉助docker,而docker可以使用離線安裝,這裏我們安裝最新版的,具體步驟如下:
一、第一部分(在能連網的服務器上)
1.1 配置安裝源存放路徑
mkdir -p /root/docker-ce-local && cd /root/docker-ce-local
1.2 獲取createrepo安裝包
yum install --downloadonly --downloaddir=/root/docker-ce-local createrepo
1.3 獲取系統更新yum源
yum update --downloadonly --downloaddir=/root/docker-ce-local
1.4 卸載舊版本
yum remove docker docker-common docker-selinux docker-engine
1.5 獲取docker-ce所需依賴
yum install --downloadonly --downloaddir=/root/docker-ce-local yum-utils device-mapper-persistent-data lvm2
1.6 設置docker-ce在線存儲庫
yum -y install yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.7 更新yum源索引
yum makecache fast
1.8 獲取docker-ce及相關rpm安裝源
yum install --downloadonly --downloaddir=/root/docker-ce-local docker-ce
1.9 查看安裝時docker所需要的密鑰並下載
more /etc/yum.repos.d/docker-ce.repo
cd /root/docker-ce-local/
wget https://download.docker.com/linux/centos/gpg
1.10 安裝createrepo
yum install createrepo -y
1.11 初始化源文件的repodata
createrepo -pdo /root/docker-ce-local /root/docker-ce-local
createrepo --update /root/docker-ce-local
1.12 將文件夾打包爲yum-local.tgz
cd /root
tar zcf centos-local.tgz docker-ce-local/
二、第二部分(在不能上網的服務器上)
2.1 在目標計算機上將tgz包上傳至/root路徑下,並解壓centos-local.tgz文件
cd /root
tar zxf centos-local.tgz
2.2 安裝createrepo
cd /root/docker-ce-local
rpm -qa | grep libxml2 | xargs rpm -e --nodeps
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh libxml2-2.9.1-6.el7.4.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7.4.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
注:createrepo版本可能不一樣,根據自己下載的包的版本安裝,有時需要先卸載已有版本
2.3 備份安裝源(將所有的安裝源移動到備份文件夾中)
cd /etc/yum.repos.d/
mkdir repobak
mv CentOS* repobak/
2.4 新增docker-ce-local.repo源文件,並添加以下配置
tee /etc/yum.repos.d/docker-ce-local.repo <<-'EOF'
[docker-ce-local]
name=Local Yum
baseurl=file:///root/docker-ce-local/
gpgcheck=1
gpgkey=file:///root/docker-ce-local/gpg
enabled=1
EOF
2.5 生成源索引及緩存
createrepo /root/docker-ce-local
yum makecache
2.6 安裝docker-ce
yum install docker-ce -y
2.7 啓動並測試
systemctl start docker
docker -v
PS:修改docker的默認配置
vim /usr/lib/systemd/system/docker.service # 編輯docker配置文件,修改默認端口
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2377 -H fd:// --containerd=/run/containerd/containerd.sock #原先的注掉