本地 Docker Yum 仓库的创建
# 准备一台干净的 Centos 7 机器
略
# 更新软件包
yum update
[root@localhost ~]# yum update
已加载插件:fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 153 kB 00:00:01
(2/4): extras/7/x86_64/primary_db
......
# 安装 createrepo 工具以便创建本地 Yum 仓库
yum -y install createrepo
[root@localhost ~]# yum -y install createrepo
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解决依赖关系
......
# 删除当前缓存的 rpm 包,可以直接删除 /var/cache/yum/* 目录中的内容
rm -rf /var/cache/yum/*
[root@localhost ~]# rm -rf /var/cache/yum/*
# 修改 yum.conf 开启缓存 rpm 软件包
sed -i 's/keepcache=0/keepcache=1/' /etc/yum.conf
[root@localhost ~]# sed -i 's/keepcache=0/keepcache=1/' /etc/yum.conf
[root@localhost ~]# head -12 /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 # 开启保留已下载的 rpm 包
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
# 卸载已安装的 Docker
yum remove docker-ce \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker \
docker-ce-cli
[root@localhost ~]# yum remove docker-ce \
> docker-client \
> docker-client-latest \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-selinux \
> docker-engine-selinux \
> docker-engine \
> docker \
> docker-ce-cli
已加载插件:fastestmirror
参数 docker-ce 没有匹配
参数 docker-client 没有匹配
参数 docker-client-latest 没有匹配
参数 docker-common 没有匹配
参数 docker-latest 没有匹配
参数 docker-latest-logrotate 没有匹配
参数 docker-logrotate 没有匹配
参数 docker-selinux 没有匹配
参数 docker-engine-selinux 没有匹配
参数 docker-engine 没有匹配
参数 docker 没有匹配
参数 docker-ce-cli 没有匹配
不删除任何软件包
# 安装必要的系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
已加载插件:fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 153 kB 00:00:00
(2/4): extras/7/x86_64/primary_db
......
# 配置 Yum 仓库,以便从阿里云镜像站下载软件包
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
# 快速更新 Yum 仓库的缓存
yum makecache fast
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror
adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@localhost ~]# yum makecache fast
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/2): docker-ce-stable/7/x86_64/updateinfo | 55 B 00:00:00
(2/2): docker-ce-stable/7/x86_64/primary_db | 152 kB 00:00:00
元数据缓存已建
# 下载并安装 Docker 软件包
yum install -y docker-ce docker-ce-cli containerd.io
[root@localhost ~]# yum install -y docker-ce docker-ce-cli containerd.io
已加载插件:fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Repository contrib is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解决依赖关系
......
# 查看安装的 Docker 版本
docker --version
[root@localhost ~]# docker --version
Docker version 26.1.4, build 5650f9b
# 将 /var/cache/yum/ 目录下的所有 RPM 包移动到当前目录 (docker_rpm)
[root@localhost ~]# mkdir docker_rpm
[root@localhost ~]# cd docker_rpm/
[root@localhost docker_rpm]# find /var/cache/yum/* -name "*.rpm" -exec mv {} ./ \;
[root@localhost docker_rpm]# ls
audit-libs-python-2.8.5-4.el7.x86_64.rpm device-mapper-event-libs-1.02.170-6.el7_9.5.x86_64.rpm docker-ce-rootless-extras-26.1.4-1.el7.x86_64.rpm lvm2-2.02.187-6.el7_9.5.x86_64.rpm setools-libs-3.3.8-4.el7.x86_64.rpm
checkpolicy-2.5-8.el7.x86_64.rpm device-mapper-libs-1.02.170-6.el7_9.5.x86_64.rpm docker-compose-plugin-2.27.1-1.el7.x86_64.rpm lvm2-libs-2.02.187-6.el7_9.5.x86_64.rpm slirp4netns-0.4.3-4.el7_8.x86_64.rpm
containerd.io-1.6.33-3.1.el7.x86_64.rpm device-mapper-persistent-data-0.8.5-3.el7_9.2.x86_64.rpm fuse3-libs-3.6.1-4.el7.x86_64.rpm policycoreutils-python-2.5-34.el7.x86_64.rpm yum-utils-1.1.31-54.el7_8.noarch.rpm
container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm docker-buildx-plugin-0.14.1-1.el7.x86_64.rpm fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm python-chardet-2.2.1-3.el7.noarch.rpm
device-mapper-1.02.170-6.el7_9.5.x86_64.rpm docker-ce-26.1.4-1.el7.x86_64.rpm libcgroup-0.41-21.el7.x86_64.rpm python-IPy-0.75-6.el7.noarch.rpm
device-mapper-event-1.02.170-6.el7_9.5.x86_64.rpm docker-ce-cli-26.1.4-1.el7.x86_64.rpm libsemanage-python-2.5-14.el7.x86_64.rpm python-kitchen-1.1.1-5.el7.noarch.rpm
# 创建 Yum 仓库元数据
createrepo .
[root@localhost docker_rpm]# createrepo .
Spawning worker 0 with 27 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
# 将 docker_rpm 目录中的文件打包成一个压缩文件便于后续离线安装 Docker
tar vzcf docker_repo.tgz docker_rpm/
[root@localhost ~]# tar vzcf docker_repo.tgz docker_rpm/
docker_rpm/
docker_rpm/python-chardet-2.2.1-3.el7.noarch.rpm
docker_rpm/python-kitchen-1.1.1-5.el7.noarch.rpm
docker_rpm/yum-utils-1.1.31-54.el7_8.noarch.rpm
docker_rpm/audit-libs-python-2.8.5-4.el7.x86_64.rpm
docker_rpm/checkpolicy-2.5-8.el7.x86_64.rpm
......
本地 Docker Yum 仓库的使用
# 解压 tar 包
tar xf docker_repo.tgz
[root@localhost ~]# tar xf docker_repo.tgz
[root@localhost ~]# ls
anaconda-ks.cfg docker_repo.tgz docker_rpm
# 备份 /etc/yum.repos.d/ repo 文件
mkdir /etc/yum.repos.d/bak-$(date +"%Y%m%d%H%M%S") && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak-$(date +"%Y%m%d%H%M%S")
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo CentOS-x86_64-kernel.repo docker-ce.repo
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# mkdir /etc/yum.repos.d/bak-$(date +"%Y%m%d%H%M%S") && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak-$(date +"%Y%m%d%H%M%S")
# 创建 docker.repo Yum 仓库配置文件
cat << EOF > /etc/yum.repos.d/docker.repo
[myyum]
name=My Custom Yum Repo
baseurl=file:///root/docker_rpm/
enabled=1
gpgcheck=0
EOF
[root@localhost ~]# cat << EOF > /etc/yum.repos.d/docker.repo
> [myyum]
> name=My Custom Yum Repo
> baseurl=file:///root/docker_rpm/
> enabled=1
> gpgcheck=0
> EOF
[root@localhost ~]# cat /etc/yum.repos.d/docker.repo
[myyum]
name=My Custom Yum Repo
baseurl=file:///root/docker_rpm/ # 指定仓库路径
enabled=1
gpgcheck=0
# 清理 Yum 的缓存,更新 Yum 仓库的缓存
yum clean all
yum makecache
[root@localhost ~]# yum clean all
已加载插件:fastestmirror
正在清理软件源: myyum
Cleaning up list of fastest mirrors
Other repos take up 222 M of disk space (use --verbose for details)
[root@localhost ~]# yum makecache
已加载插件:fastestmirror
Determining fastest mirrors
myyum | 2.9 kB 00:00:00
(1/3): myyum/primary_db | 23 kB 00:00:00
(2/3): myyum/other_db | 13 kB 00:00:00
(3/3): myyum/filelists_db | 12 kB 00:00:00
元数据缓存已建立
# 安装必要的系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
已加载插件:fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 153 kB 00:00:00
(2/4): extras/7/x86_64/primary_db
......
# 使用创建的 Yum 源,下载并安装 Docker 软件包
yum install -y docker-ce docker-ce-cli containerd.io
[root@localhost ~]# yum -y install --enablerepo=myyum docker-ce docker-ce-cli containerd.io
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 containerd.io.x86_64.0.1.6.33-3.1.el7 将被 安装
---> 软件包 docker-ce.x86_64.3.26.1.4-1.el7 将被 安装
--> 正在处理依赖关系 docker-ce-rootless-extras,它被软件包 3:docker-ce-26.1.4-1.el7.x86_64 需要
---> 软件包 docker-ce-cli.x86_64.1.26.1.4-1.el7 将被 安装
--> 正在检查事务
---> 软件包 docker-ce-rootless-extras.x86_64.0.26.1.4-1.el7 将被 安装
--> 解决依赖关系完成
......
# 查看 Docker 版本
docker --version
[root@localhost ~]# docker --version
Docker version 26.1.4, build 5650f9b
1万+





