无法连接互联网的情况下,我们需要使用docker就需要离线搭建,但是如果直接下载docker-ce的rpm包安装的话会缺少各种依赖,经过摸索,发现配置本地yum源可以解决当前问题。本文将阐述在CentOS7下,通过配置本地yum源,离线安装docker-ce。
1.有网环境下载docker镜像
如不想自行下载最新版本docker镜像可以直接下载压缩文件下载地址如下:
链接:https://pan.baidu.com/s/12mt-Qtz3sJmV_wjW8xQWFA
提取码:tej3
如果想自行搭建则看下文
1.1 使用yum只下载不安装依赖包
yum install --downloadonly --downloaddir=/root/docker-ce-local <package-name>
mkdir -p /root/docker-ce-local && cd /root/docker-ce-local
yum install --downloadonly \
--downloaddir=/root/docker-ce-local createrepo
yum update --downloadonly --downloaddir=/docker-ce-local
yum install --downloadonly \
--downloaddir=/root/docker-ce-local \
yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
yum install --downloadonly --downloaddir=/root/docker-ce-local docker-ce
1.2 卸载旧版本
yum remove docker \
docker-common \
docker-selinux \
docker-engine
1.3 查看安装时docker所需要的密钥并下载
more /etc/yum.repos.d/docker-ce.repo
cd /root/docker-ce-local/
wget https://download.docker.com/linux/centos/gpg
看到如下情况
1.4 初始化源文件仓库数据
安装createrepo,并初始化
yum install createrepo
createrepo -pdo /root/docker-ce-local /root/docker-ce-local
createrepo --update /root/docker-ce-local
1.5 将文件夹打包为yum-local.tgz
cd /root
tar -zcvf centos-local.tgz docker-ce-local/
2.在离线环境搭建
2.1 将tgz包上传至/root路径下,并解压centos-local.tgz文件
cd /root
tar -xvzf centos-local.tgz
2.2 安装createrepo
cd /root/docker-ce-local
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 配置本地源
vi /etc/yum.repos.d/docker-ce-local.repo
[docker-ce-local]
name=Local Yum
baseurl=file:///root/docker-ce-local/
gpgcheck=1
gpgkey=file:///root/docker-ce-local/gpg
enabled=1
2.5 安装docker-ce
createrepo /root/docker-ce-local
yum makecache
cd /root/docker-ce-local
rpm -ivh container-selinux-2.119.1-1.c57a6f9.el7.noarch.rpm
yum install docker-ce
systemctl start docker.service
systemctl enable docker.service
docker version
至此docker离线安装成功。