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 #原先的注掉