为RedHat和CentOS快速同步Fedora epel yum源到本地的docker
317
为RedHat和CentOS快速同步Fedora epel yum源到本地的docker
由于很多CentOS和RedHat服务器都部署在与因特网隔离的局域网内部,安装很多rpm包时需要解决大量的依赖问题非常麻烦。所以对于局域网内部的机器可以同步Fedora项目的epel yum源至本地,然后就可以方便的安装rpm包了。
由于epel源往往非常大(epel 7 25GB左右),所以推荐把同步目录挂载到宿主机上,否则docker容器一旦stop就会丢失所有已同步的数据。 下面以Windows7下安装的docker虚拟机docker-toolbox(boot2docker)为例介绍
首先启动docker虚拟机 对于CentOS 6.x和RedHat 6.x
#首先在宿主机建立c:\Users\epel6文件夹 docker run -itd -v /c/Users/epel6:/opt/epel6/ alexzhuo/epel-sync /bin/bash #进入虚拟机 docker attach xxxxxx #启动同步 /etc/update_epel_6.sh
对于CentOS 7.x和RedHat 7.x
#首先在宿主机建立c:\Users\epel7文件夹 docker run -itd -v /c/Users/epel7:/opt/epel7/ alexzhuo/epel-sync /bin/bash #进入虚拟机 docker attach xxxxxx #启动同步 /etc/update_epel_7.sh
下载完成后,可以修改yum源指向刚刚同步好的rpm库,方法: 如果刚刚同步的yum源放在了需要安装rpm的服务器上,那么 在/etc/yum.repos.d/目录下新建一个epel.repo文件 在epel.repo中写入yum的磁盘路径
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch baseurl=file:///opt/epel6/#根据实际情况自行确定位置 failovermethod=priority enabled=1 #为0则不生效,如果删掉了yum源那么需要置0,否则会报错 gpgcheck=0#不检查gpg证书,epel源不像光盘中一样又GPG证书 gpgkey=file:///opt/epel6/RPM-GPG-KEY-EPEL-6 #GPG证书的位置,可惜不存在
如果安装rpm包的机器的硬盘上没有刚刚同步的rpm库,那么可以搭建一台专门用来提供rpm包的服务器,可以再这个服务器上安装httpd或者caddy等http服务器,然后把刚刚同步的epel目录通过ftp或者http协议开放出去就可以了。 假设yum服务器的IP是192.168.1.2,httpd工作的端口是6700。epel6这个刚刚同步过的目录被放在/var/www/html下(也可以软连接过去更方便)。那么客户机按照如下配置。另外使用vsftpd做成ftp协议的也可以。
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch baseurl=http://192.168.1.2:8080/epel6/ #支持http和ftp协议 failovermethod=priority enabled=1 gpgcheck=0 #没有GPG证书 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 #没有GPG证书
Content type
Image
Digest
Size
80.7 MB
Last updated
about 9 years ago
docker pull alexzhuo/epel-sync