实验要求:
了解仓库,掌握搭建私有仓库的方法。
实验环境:
主机名 | IP地址 | 节点角色 |
---|---|---|
registry | 192.168.145.134 | 私有仓库 |
node | 192.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 查看拉取的镜像
实验完毕