之前都是在有网的情况下进行操作,也没觉得linux安装东西有啥难度,这次要在服务器上部署项目了,没有网可以用,导致安装docker一直错误,这几天踩了好多坑,大家操作的时候一定要谨慎,我推荐一套最为稳妥的操作。
1.挂载centOS的镜像为本地yum源
1.1下载centOS
这里使用的镜像是完整版的,里面有yum仓库
阿里镜像:https://mirrors.aliyun.com/centos/7/isos/x86_64/
以下操作建议使用工具操作(Xshell和xftp)
下载完毕之后
1.2将.ios文件放到linux下的/home,目录随便
创建挂载点并挂载镜像文件,命令如下:
[root@localhost ~]# mkdir /media/cdrom #创建挂载点的目录
[root@localhost ~]# mount -o loop /home/CentOS-7-x86_64-Everything-1908.iso /media/cdrom
[root@localhost ~]# df -HT #查看镜像是否挂载成功
备注: -o是参数,loop是把一个文件当成硬盘分区mount挂着到目录
挂载成功
修改yum源的配置文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
[root@localhost yum.repos.d]# mkdir ./bak
[root@localhost yum.repos.d]# mv ./*.repo ./bak/
[root@localhost yum.repos.d]# cp ./bak/CentOS-Media.repo .
[root@localhost yum.repos.d]# vim CentOS-Media.repo #修改配置文件,内容如下图
# CentOS-Media.repo
#
# This repo can be used with mounted DVD media, verify the mount point for
# CentOS-7. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c7-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c7-media [command]
[c7-media]
name=CentOS-$releasever - Media
#baseurl=file:///media/CentOS/
baseurl=file:///media/cdrom/
#baseurl=file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
清除缓存
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum repolist
这一步结束说明已经挂载成功,不过这里面并没有docker、redis、nginx等所需要安装的东西
2.离线安装docker
准备工作,需要一台联网的机器(里面带一个新的虚拟机,这个只是为了保险)
接下来是个人电脑的操作
2.1通过命令行下载完整的依赖
yum install --downloadonly --downloaddir=/docker/yumrepo docker
yum install --downloadonly --downloaddir=/docker/yumrepo createrepo
#--downloadonly只下载不安装
#/docker/dockerRpm指定路径,不指定情况,默认放在缓存/var/cache/yum下面还有,可能路径不同
#docker 要下载的东西
#createrepo 构建本地yum源使用的
#createrepo 只下载是为了在服务器上可以使用createrepo命令(只是保险操作)
2.2构建本地yum源
创建一个仓库,将刚刚下载的所有的依赖放进去(这个时候可以把需要的东西都下了放进去,也可以在后面在下载,一样的)
mkdir /yumrepo
安装createrepo软件
yum -y install createrepo
确保所有依赖包全部上传至仓库文件夹后,执行自建仓库命令
createrepo /yumrepo
该文件夹下会生成一个repodata目录,记录该仓库中所有软件包的信息。此时该文件夹即可用于移植
中,移植后只需增加一个配置文件,令yum可识别到该仓库,即可使用。
在yum的仓库配置目录
/etc/yum.repos.d/
下创建
docker.repo
配置文件指向本地仓库的路径、
[docker]
name=docker
baseurl=file:///yumrepo
#baseurl:仓库路径,由于是放在本地的只能用file协议而不是http
enabled=1 #enabled:[1 or 0],1为开启该仓库,0为关闭该仓库
gpgcheck=0 #不做gpg检查
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Centos-7
通过命令查看仓库状态,若配置无误,可以看到创建的仓库已经被加载
yum repolist
注:若此时无外网环境,默认的yum源都不可用,查看仓库时会报错,此时将/etc/yum.repos.d/目录下
件删除即可。(注意先备份)
2.3移植仓库到服务器
1). 将创建好的仓库文件夹/yumrepo,上传或拷贝至客户内网机中
2). 依照步骤三中的4),在客户机中创建.repo配置文件
3). 通过命令查看仓库状态,若配置无误,可以看到创建的仓库已经被加载
yum repolist
至此,已在客户内网机中建立起本地yum源,可用于安装所需依赖包。
操作完成后就可以使用yum install命令下载了
每次在仓库添加完依赖之后请进行操作
清理本地YUM缓存和重建
createrepo /yumrepo
yum clean all
yum makecache
3.另一种操作
下载完.ios文件后进行解压,然后进行第二部操作,将.ios解压后得到的所有依赖(/Packages目录下)扔到本地建的仓库中/yumrepo。