实验要求:

了解仓库,掌握搭建私有仓库的方法

实验环境:

主机名IP地址节点角色
registry192.168.145.134私有仓库
node192.168.145.133客户端

本次实验我们使用VMware Workstation

实验过程:

注意:

原docker虚拟机与克隆的虚拟机 任意一个来搭建私有仓库,本实验使用的克隆的Docker虚拟机用作registry私有仓库,无需与我一致。

前言:

有时候使用Docker Hub这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。比如,基于公司内部项目构建的镜像。docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。

开始实验:

克隆虚拟机

​ 首先我们来克隆一个Docker主机(虚拟机先关机)

选择Docker虚拟机 右键选择管理-克隆。

在选择类型时,选择完整克隆

点击完成,等待即可

克隆成功后,我们需要修改网卡

网卡MAC地址修改完成后,需要进入系统修改静态ip

输入ifconfig查看网卡,我这是ens33 和ens36

Vi 编辑网卡

与克隆前的网段一致即可

Net网卡

仅主机网卡

完成后,我们输入ifconfig查看ip 记下来

搭建私有仓库

我们用克隆的Docker用作registry私有仓库,利用docker pull 命令从 Docker Hub 拉取 registry 镜像,并通过 docker images 命令查看下载的 registry 镜像。

命令如下:

docker pull registry

拉取结果:

镜像拉取后 使用 docker images 命令查看镜像。

命令如下:

docker images

查看镜像的结果

通过 docker run 命令创建并启动一个 registry 容器,并挂载目录,利用容器提供私有仓库的服务。

命令如下:

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry

容器运行的结果

容器已经创建完毕,我们通过 docker ps 命令查看 registry 容器是否运行。

docker ps

运行结果如下

执行命令 curl -X GET http://127.0.0.1:5000/v2/_catalog 命令,如果显示如下信息,表示目前仓库里还没有镜像。

curl -X GET http://127.0.0.1:5000/v2/_catalog

运行结果如下:

此时私有仓库已经创建和启动完毕了,我们可以拉取busybox镜像,修改标签tag后,上传到本地仓库中。

拉取busybox镜像

Docker pull busybox

docker images查看镜像

docker images

修改TAG标签

docker tag busybox:latest 192.168.145.134:5000/busybox:latest

注意更改ip地址(私有仓库ip)

查看更改后的

docker images 

将192.168.145.134:5000/busybox:latest镜像上传到本地仓库

docker push 192.168.145.134:5000/busybox

出现上面的提示后是因为默认使用https协议上传,所以我们需要将http修改为https 方法如下:

我们修改 /usr/lib/systemd/system/docker.service 文件,

vi /usr/lib/systemd/system/docker.service

这时我们会进入docker.service文件进行编辑,找到[Service]里面有个ExecStart=/usr/bin/dockerd 我们在后面添加

--insecure-registry 192.168.145.134:5000

注意修改自己的ip地址

修改后我们:wq保存(root模式)

我们重启Docker服务

systemctl daemon-reload
systemctl restart docker

重启 registry 容器

首先 docker ps -a 查看refistry容器的id,然后使用docker restart id 重启容器

docker ps -a

重启容器格式

docker restart 容器ID

我们发现容器的id是306a97db8f71,我们重启它

docker restart 306a97db8f71

使用 docker ps 发现容器已经重启

docker ps 

再次上传镜像 192.168.145.134:5000/busybox 到本地仓库

docker push 192.168.145.134:5000/busybox

出现上图的内容,说明已经上传成功了

客户端操作

我们跳转到客户端,我们需要修改https协议。(和私有仓库一样的操作)

vi /usr/lib/systemd/system/docker.service

进入编辑

我们重启Docker服务

systemctl daemon-reload
systemctl restart docker

重启完毕后,我们可以拉取在私有仓库的镜像了

拉取在私有仓库的镜像

docker pull 192.168.145.134:5000/busybox

使用docker images 查看拉取的镜像

实验完毕

最后修改:2021 年 10 月 21 日 11 : 44 PM
如果觉得我的文章对你有用,请随意赞赏