制作本地docker-ce镜像仓库(使用reposync、createrepo、httpd)

本文档详细介绍了如何在CentOS7.9系统上,利用reposync从阿里云开源镜像站下载docker-ce的RPM包,通过createrepo创建本地yum源,并使用httpd服务发布,以满足内网中其他机器通过yum安装docker-ce的需求。主要步骤包括配置reposync、createrepo和httpd,以及设置本地yum源和内网共享。

记录:330

场景:在CentOS 7.9操作系统上,使用reposync从开源镜像站下载docker-ce镜像仓库的rpm包;使用createrepo制作本地docker-ce镜像仓库;使用httpd发布服务。解决内网中使用yum命令安装docker-ce的需求。

版本:

操作系统:CentOS 7.9

名词:

Docker CE,是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP。

Docker Hub概述:Docker Hub is the world's easiest way to create, manage, and deliver your team's container applications.

docker官网:https://www.docker.com/

Docker Hub官网:https://hub.docker.com/

1.基础环境

1.1基础工具准备

(1)安装reposync工具

命令:yum install -y yum-utils

解析:yum-utils包括了很多yum功能,比如reposync下载工具。默认安装在/usr/bin/reposync。

(2)安装createrepo工具

命令:yum install -y createrepo

解析:使用createrepo生成yum源镜像仓库元数据。

(3)安装httpd工具

命令:yum install -y httpd

解析:安装httpd后可以使用httpd发布服务,把yum源镜像仓库提供给内网其它机器使用。

(4)配置httpd服务

安装httpd完成后,会生成httpd发布服务的目录,把需要httpd发布的内容移动此目录,就可以实现http访问。

httpd默认端口:80

httpd默认生成的目录: /var/www/html/

httpd启动命令:systemctl start httpd

httpd开机自启动命令:systemctl enable httpd

查看httpd启动状态命令:systemctl status httpd.service

查看httpd发布端口命令:netstat -atunlp | grep httpd

1.2镜像网站

(1)官网镜像站

官网下载地址:https://download.docker.com/linux/centos/

(2)国内镜像站

阿里云开源镜像站:https://mirrors.aliyun.com/docker-ce

1.3机器规划

(1)外网主机hadoop200

主机hadoop200,可连接公网,下载公网rpm包。

(2)内网主机hadoop201

主机hadoop201,内网主机,无法下载公网rpm包。

2.使用reposync下载docker-ce镜像仓库的rpm包

2.1下载地址

地址:https://mirrors.aliyun.com/docker-ce/linux/centos/7.9/x86_64/stable/

2.2配置镜像站yum源文件

在主机hadoop200操作。

编辑文件:vi /etc/yum.repos.d/docker-ce.repo

编辑内容:

[dockerCe]
name=dockerCe
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7.9/x86_64/stable
gpgcheck=0
enabled=1

解析:在baseurl中配置的路径就是阿里云开源镜像站docker-ce镜像仓库地址。

2.3清空和刷新yum源元数据缓存

命令:yum clean all && yum makecache

解析:yum clean all,清空历史yum源元数据;yum makecache,创建yum源元数据缓存。

2.4使用reposync下载镜像仓库的rpm包

(1)下载

下载docker-ce的x86_64包命令:reposync -r dockerCe -p /home/mirror

注释:-r读取,-p指定目录。

(2)下载完成

下载完成后,数据目录。

docker-ce的x86_64包目录:/home/mirror/dockerCe

3.使用createrepo制作镜像仓库和httpd发布镜像仓库服务

3.1在httpd默认目录创建目录

在主机hadoop201,在httpd默认目录下创建目录。。

目录:mkdir -p /var/www/html/docker-ce/

3.2已下载包移到httpd发布的目录

(1)已下载包

在主机hadoop200,包对应目录。

docker-ce的x86_64包目录:/home/mirror/dockerCe

(2)把rpm包把移到httpd目录

在主机hadoop201,包对应目录。

docker-ce的x86_64的rpm包移到目录:/var/www/html/docker-ce

(3)拷贝指令

如果具备机器之间拷贝可参考如下命令,不具备则使用其它方式拷贝。

拷贝命令:scp -r /home/mirror/dockerCe/* root@192.168.19.201:/var/www/html/docker-ce

3.3使用createrepo生成镜像仓库元数据

在主机hadoop201,生成镜像仓库元数据。

生成docker-ce仓库命令:createrepo -v /var/www/html/docker-ce

解析:createrepo,生成镜像仓库元数据;在目录下会生成repodata目录,镜像仓库元数据在此目录。

3.4使用httpd发布镜像仓库的地址

使用httpd发布镜像仓库目的,就是为了是内网机器或者集群机器都能使用。

地址:http://192.168.19.201/docker-ce

可以在浏览器查看,验证地址可用。

3.5新增镜像仓库yum源配置文件

编辑文件:vi /etc/yum.repos.d/docker-ce.repo

编辑内容:

[docker-ce]
name=docker-ce
baseurl=http://192.168.19.201/docker-ce
enabled=1
gpgcheck=0

解析:[docker-ce],本地镜像仓库的唯一标识;name,本地镜像仓库名称;baseurl,本地镜像仓库使用httpd发布的地址;enabled=1,启动镜像仓库,为0则不启用;gpgcheck=0,不校验。

3.6清空和刷新yum源元数据缓存

命令:yum clean all && yum makecache

解析:yum clean all,清空历史yum源元数据;yum makecache,创建yum源元数据缓存。

3.7应用本地镜像仓库

(1)查看仓库信息

查看docker-ce仓库:yum repolist docker-ce

解析:能看到仓库信息和安装包数量。

(2)搜索仓库中的包

命令:yum search --showduplicates docker-ce

(3)安装仓库中的包

命令:yum install -y docker-ce

解析:默认安装仓库中最新的包;如需安装特定版本,需在包名后面指定版本号。

3.8其它机器使用本地镜像仓库

部署本地镜像仓库主要目的:内网集群使用本地镜像仓库。

(1)把yum源配置文件拷贝的目标机器

拷贝命令:scp -r /etc/yum.repos.d/docker-ce.repo root@192.168.19.161:/etc/yum.repos.d/

(2)目标机器清空和刷新yum源元数据缓存

命令:yum clean all && yum makecache

解析:yum clean all,清空历史yum源元数据;yum makecache,创建yum源元数据缓存。

(3)目标机器使用yum命令

搜索仓库中的包:yum search --showduplicates docker-ce

以上,感谢。

2022年11月24日

<think>好的,我需要解释用户提供的yum命令中各参数的作用。首先,用户给出的命令是: yum install docker-ce --disablerepo=* --enablerepo=docker-ce-local 我记得yum是CentOS和RHEL等系统中的包管理工具,用来安装软件包。这里的关键是理解--disablerepo--enablerepo这两个参数。 首先,--disablerepo=* 应该是指禁用所有已启用的仓库。星号通常表示通配符,这里可能表示所有仓库。用户可能想临时禁用其他仓库,避免从其他源安装docker-ce,确保只从指定的仓库安装。 然后是--enablerepo=docker-ce-local,这应该是启用名为docker-ce-local的特定仓库。通常,docker-ce的官方仓库可能配置了不同的名称,但用户可能自己添加了本地仓库或者配置了某个特定的镜像源,比如阿里云镜像,如引用[2]中提到的那样,配置了阿里云的docker-ce仓库地址。 结合这两个参数,整个命令的作用是:在安装docker-ce时,禁用所有其他仓库,只启用docker-ce-local仓库。这样做的好处是确保安装的docker-ce版本来自指定的仓库,避免因为其他仓库中存在同名软件包而导致版本冲突或下载源不正确的问题。 需要确认一下,用户提到的docker-ce-local是否是本地搭建的仓库,或者是否是通过修改repo文件指向的国内镜像源。比如引用[4]中提到的修改docker-ce.repo文件内容,可能涉及到仓库地址的变更,这时候如果仓库名称被改为docker-ce-local,就需要通过--enablerepo来指定。 另外,用户提供的引用中,引用[2]提到了配置阿里云的docker-ce仓库,并且通过sed命令替换了仓库地址。如果用户正确配置了docker-ce-local仓库,并且该仓库指向阿里云镜像,那么使用该命令可以确保从国内源快速安装,避免网络问题。 总结起来,参数的作用是精确控制安装源,确保安装过程只从指定的仓库获取软件包,这在处理仓库冲突或需要特定版本时非常有用。同时,这也符合用户提供的引用中关于配置国内镜像源的最佳实践。</think>以下是命令参数的详细解析: $yum\ install\ docker\text{-}ce\ \text{--}disablerepo\text{=}*\ \text{--}enablerepo\text{=}docker\text{-}ce\text{-}local$ 1. **--disablerepo=*** - 星号`*`表示通配符,此参数会禁用所有已启用的软件仓库 - 作用:避免从其他仓库安装旧版本或冲突版本,确保安装环境纯净[^2][^4] 2. **--enablerepo=docker-ce-local** - 显式启用名为`docker-ce-local`的特定仓库 - 该仓库通常通过`yum-config-manager`配置,可能指向本地缓存或镜像源(如阿里云镜像)[^2][^4] 3. 参数组合效果 - 先禁用全部仓库,再单独启用目标仓库 - 确保docker-ce安装包**仅从指定源获取** - 适用于存在多仓库冲突或需要强制使用特定源的场景[^1][^4] 典型应用场景举例: ```bash # 先配置阿里云镜像源(引用[2]内容) sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo # 再执行安装命令 yum install docker-ce --disablerepo=* --enablerepo=docker-ce-local ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值