文章目录
- [1. 实战概述](#1. 实战概述)
- [2. 实战步骤](#2. 实战步骤)
-
- [2.1 创建Docker私有仓库](#2.1 创建Docker私有仓库)
-
- [2.1.1 获取并查看registry镜像](#2.1.1 获取并查看registry镜像)
- [2.1.2 启动并查看registry容器](#2.1.2 启动并查看registry容器)
- [2.1.3 查看仓库的镜像目录](#2.1.3 查看仓库的镜像目录)
- [2.1.4 获取busybox镜像并修改标签](#2.1.4 获取busybox镜像并修改标签)
- [2.1.5 修改Docker服务文件](#2.1.5 修改Docker服务文件)
- [2.1.6 上传busybox镜像到本地仓库](#2.1.6 上传busybox镜像到本地仓库)
- [2.1.7 查看私有仓库的镜像](#2.1.7 查看私有仓库的镜像)
- [2.2 获取私有仓库的镜像](#2.2 获取私有仓库的镜像)
-
- [2.2.1 在Euler02上获取私有仓库中的busybox镜像](#2.2.1 在Euler02上获取私有仓库中的busybox镜像)
- [2.2.2 在Euler03上获取私有仓库中的busybox镜像](#2.2.2 在Euler03上获取私有仓库中的busybox镜像)
- [3. 实战总结](#3. 实战总结)
1. 实战概述
- 本次实战以 Euler 节点为环境,完成 Docker 私有镜像仓库的搭建与跨节点镜像共享:先在 Euler01 拉取 registry 镜像,创建挂载目录并启动私有仓库容器;接着拉取 busybox 镜像打标签,配置 Docker 信任后推送至仓库;最后在 Euler02、Euler03 配置信任并拉取仓库中的 busybox 镜像,实现镜像跨节点复用。
2. 实战步骤
2.1 创建Docker私有仓库
2.1.1 获取并查看registry镜像
- 在Eluer01节点上执行命令:
docker pull registry

- 执行命令:
docker images

2.1.2 启动并查看registry容器
-
执行命令:
mkdir /hwregistry

-
执行命令:
docker run -d -p 5000:5000 --name pri_registry -v /hwregistry:/var/lib/registry registry

-
结果说明 :这段操作是在搭建Docker私有镜像仓库:先创建了宿主机目录
/hwregistry,接着用docker run启动了名为pri_registry的Registry容器,将宿主机5000端口映射到容器5000端口,并把容器内镜像存储目录/var/lib/registry挂载到/hwregistry实现数据持久化。容器已后台运行,可通过euler01:5000访问私有仓库,后续需配置Docker信任该HTTP仓库才能推送/拉取镜像。 -
执行命令:
docker ps -a

2.1.3 查看仓库的镜像目录
- 执行命令:
curl -X GET http://127.0.0.1:5000/v2/_catalog

- 结果说明 :这段
curl命令是请求私有Docker仓库的镜像目录(v2/_catalog),返回结果{"repositories":[]}说明当前仓库里还没有任何镜像。这是正常的初始状态,后续可以向127.0.0.1:5000推送镜像来填充仓库。
2.1.4 获取busybox镜像并修改标签
- 执行命令:
docker pull busybox

- 执行命令:
docker tag busybox:latest euler01:5000/busybox:latest

2.1.5 修改Docker服务文件
- 执行命令:
vim /usr/lib/systemd/system/docker.service

- 执行命令:
systemctl daemon-reload

- 执行命令:
systemctl restart docker,重启Docker服务

2.1.6 上传busybox镜像到本地仓库
- 执行命令:
docker push euler01:5000/busybox:latest

2.1.7 查看私有仓库的镜像
- 执行命令:
curl http://euler01:5000/v2/_catalog

2.2 获取私有仓库的镜像
2.2.1 在Euler02上获取私有仓库中的busybox镜像
- 修改Docker服务文件
- 执行命令:
vim /usr/lib/systemd/system/docker.service

- 执行命令:
- 重启Docker服务
- 执行命令:
systemctl daemon-reload

- 执行命令:
systemctl restart docker

- 执行命令:
- 从本地仓库获取busybox镜像
- 执行命令:
docker pull euler01:5000/busybox

- 执行命令:
docker images

- 执行命令:
2.2.2 在Euler03上获取私有仓库中的busybox镜像
-
修改Docker服务文件
- 执行命令:
vim /usr/lib/systemd/system/docker.service

- 执行命令:
-
重启Docker服务
-
执行命令:
systemctl daemon-reload

-
执行命令:
systemctl restart docker

-
-
从本地仓库获取busybox镜像
-
执行命令:
docker pull euler01:5000/busybox

-
执行命令:
docker images

-
3. 实战总结
- 本次实战完整实现了 Docker 私有仓库的部署与使用:通过在 Euler01 创建挂载目录、启动 registry 容器,完成仓库的持久化搭建;经镜像打标签、修改 Docker 服务配置(信任 HTTP 仓库),成功将 busybox 镜像推送至私有仓库;后续在 Euler02、Euler03 重复配置步骤后,均顺利拉取到仓库镜像,验证了私有仓库的跨节点共享能力。整个流程覆盖了仓库搭建、镜像推送、跨节点拉取的核心操作,解决了镜像本地存储的局限,实现了多节点镜像的统一管理与复用。