[TOC]
生产环境中一般都是没有公网资源的,本文介绍如何在生产服务器上离线部署Docker
括号内的字母表示该操作需要在哪些服务器上执行
推荐这种方式,是因为在生产环境种一般会选定某个指定的文档软件版本使用。
#下载清华的镜像源文件wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.reposudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repoyum update
sudo yum list docker-ce --showduplicates|sort -rLoading mirror speeds from cached hostfileLoaded plugins: fastestmirrordocker-ce.x86_64 3:19.03.8-3.el7 docker-ce-stabledocker-ce.x86_64 3:19.03.7-3.el7 docker-ce-stabledocker-ce.x86_64 3:19.03.6-3.el7 docker-ce-stabledocker-ce.x86_64 3:19.03.5-3.el7 docker-ce-stabledocker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stabledocker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stabledocker-ce.x86_64 3:19.03.2-3.el7 docker-ce-stabledocker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable....
sudo yum install --downloadonly --downloaddir=/tmp/docker-19.03 docker-ce-19.03.8-3.el7 docker-ce-cli-19.03.8-3.el7
Dependencies Resolved====================================================================================================================================================================================Package Arch Version Repository Size====================================================================================================================================================================================Installing:docker-ce x86_64 3:19.03.8-3.el7 docker 25 MInstalling for dependencies:container-selinux noarch 2:2.107-3.el7 extras 39 kcontainerd.io x86_64 1.2.13-3.1.el7 docker 23 Mdocker-ce-cli x86_64 1:19.03.8-3.el7 docker 40 MTransaction Summary====================================================================================================================================================================================Install 1 Package (+3 Dependent packages)Total download size: 87 MInstalled size: 363 MBackground downloading packages, then exiting:(1/4): container-selinux-2.107-3.el7.noarch.rpm | 39 kB 00:00:00(2/4): containerd.io-1.2.13-3.1.el7.x86_64.rpm | 23 MB 00:00:00(3/4): docker-ce-19.03.8-3.el7.x86_64.rpm | 25 MB 00:00:00(4/4): docker-ce-cli-19.03.8-3.el7.x86_64.rpm | 40 MB 00:00:00------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Total 118 MB/s | 87 MB 00:00:00exiting because "Download Only" specified
yum install *.rpm
下载锁定版本软件
可参考下文的网络源搭建
sudo yum install yum-plugin-versionlock
锁定软件版本
sudo yum versionlock add docker
查看锁定列表
sudo yum versionlock list
Loaded plugins: fastestmirror, versionlock3:docker-ce-18.09.9-3.el7.*versionlock list done
锁定后无法再更新
sudo yum install docker-ceLoaded plugins: fastestmirror, versionlockLoading mirror speeds from cached hostfileExcluding 1 update due to versionlock (use "yum versionlock status" to show it)Package 3:docker-ce-18.09.9-3.el7.x86_64 already installed and latest versionNothing to do
解锁指定软件
sudo yum versionlock delete docker-ce
Loaded plugins: fastestmirror, versionlockDeleting versionlock for: 3:docker-ce-18.09.9-3.el7.*versionlock deleted: 1
解锁所有软件
sudo yum versionlock delete all
# 删除其他网络源rm -f /etc/yum.repo.d/*# 挂载光盘或者iso镜像mount /dev/cdrom /mnt
# 添加本地源cat >/etc/yum.repos.d/local_files.repo<< EOF[Local_Files]name=Local_Filesbaseurl=file:///mntenable=1gpgcheck=0gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7EOF
# 测试刚才的本地源,安装createrepo软件yum clean allyum install createrepo -y
# 安装apache 服务器yum install httpd -y# 挂载光盘mount /dev/cdrom /mnt# 新建centos目录mkdir /var/www/html/base# 复制光盘内的文件到刚才新建的目录cp -R /mnt/Packages/* /var/www/html/base/createrepo /var/www/html/centos/systemctl enable httpdsystemctl start httpd
在有网络的服务器上下载Docker-ce镜像
# 下载清华的镜像源文件wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.reposudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 新建 docker-ce目录mkdir /tmp/docker-ce/# 把镜像源同步到镜像文件中reposync -r docker-ce-stable -p /tmp/docker-ce/
把下载的 docker-ce 文件夹复制到离线的服务器
# 把docker-ce 文件夹复制到/var/www/html/docker-ce# 重建索引createrepo /var/www/html/docker-ce/
rm -f /etc/yum.repo.d/*cat >/etc/yum.repos.d/local_files.repo<< EOF[local_base]name=local_base# 改成B服务器地址baseurl=http://x.x.x.x/baseenable=1gpgcheck=0proxy=_none_[docker_ce]name=docker_ce# 改成B服务器地址baseurl=http://x.x.x.x/baseenable=1gpgcheck=0proxy=_none_EOF
sudo yum makecache fastsudo yum install docker-ce docker-ce-cli containerd.iosudo systemctl enable docker