之前都是在有网的情况下进行操作,也没觉得linux安装东西有啥难度,这次要在服务器上部署项目了,没有网可以用,导致安装docker一直错误,这几天踩了好多坑,大家操作的时候一定要谨慎,我推荐一套最为稳妥的操作。

1.挂载centOS的镜像为本地yum源

1.1下载centOS

这里使用的镜像是完整版的,里面有yum仓库

阿里镜像:https://mirrors.aliyun.com/centos/7/isos/x86_64/

docker离线安装rabbitmq docker离线安装部署 linux_CentOS

以下操作建议使用工具操作(Xshell和xftp)

下载完毕之后

1.2将.ios文件放到linux下的/home,目录随便

docker离线安装rabbitmq docker离线安装部署 linux_docker离线安装rabbitmq_02

创建挂载点并挂载镜像文件,命令如下:

[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挂着到目录

docker离线安装rabbitmq docker离线安装部署 linux_运维_03

挂载成功

docker离线安装rabbitmq docker离线安装部署 linux_docker_04

修改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离线安装rabbitmq docker离线安装部署 linux_运维_05

这一步结束说明已经挂载成功,不过这里面并没有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。