centos7 docker离线安装

介绍

本文主要讲了如何在完全没网的情况下安装docker(适合于高网络安全要求的企业)
本文适用的centos版本:

[root@0001 temp]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)

采用docker in docker下载依赖

实际试验后,还是在docker里面下载依赖最靠谱,避免本地环境是mac或者非完整版本。(我也尝试过在其他机器下载要么版本不对,要么网络不通,最终选择的docker in docker)

启动容器:

在hub.docker.com中搜索与你匹配的镜像:

centos

在dockerhub上搜索即可地址

docker run -it -v $(pwd)/output:/output centos:7.6.1810 /bin/bash

redhat

如果是redhat的,可以参考redhat universal base image (ubi)来找到最新的镜像网址

注意勾选上左下角的deprecated, 可以找到redhat 7 相关镜像:
在这里插入图片描述

下载依赖

然后在容器内执行:

 ---  这是更新最新mirror地址(因为7已经EOL了)
    
    sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
    sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

    yum install -y yum-utils
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    # 查找可用的 18.06.x 版本 (也可以在这里看 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/   看docker-ce)
    echo "可用版本:"
    yum list docker-ce --showduplicates | grep "18\.03\." | head -5
    
    
    # 下载特定版本(替换为您选择的版本)
    # docker 18.x 中包含了cli所以不需要带
    # 
    cd /output/temp
    yumdownloader --resolve docker-ce-18.03.0.ce-1.el7.centos containerd.io

然后在本地的output目录就可以看到依赖的rpm

安装在对应的机器上:

yum localinstall -y *.rpm

如果localinstall报依赖错误 则把相关报错的rpm删掉后即可. 比如这个里面selinux*, libaudit* 都删掉即可。