dayi的大键盘
dayi的大键盘

云与虚拟化:实验3 搭建Docker私有仓库

云与虚拟化:实验3 搭建Docker私有仓库

实验要求

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

前置准备

要求实验主机能够连接外网,已经正确安装Docker(版本号19.03.12),并关闭防火墙和selinux。本实验各主机配置信息如表3-1所示。

表 3-1 各宿主机信息表

主机名 IP地址 节点角色
registry 10.1.1.170/24 私有仓库
node1 10.1.1.71/24 客户端1
node2 10.1.1.59/24 客户端2
https://cmd.dayi.ink/uploads/upload_6eb92ef490f07a1763ea2ef33197b6fd.png
https://cmd.dayi.ink/uploads/upload_4fc782b0e981b69d6b5b1cecea7802b1.png
https://cmd.dayi.ink/uploads/upload_65f1a42653a070f2e21bbd2ed0c29d82.png

先建立一个快照:

https://cmd.dayi.ink/uploads/upload_50cdba4bd5a2cb4040fba787a8d0a8dd.png

实验步骤

步骤1

registry主机上利用docker pull命令从Docker Hub拉取registry镜像,并通过docker images命令查看下载的registry镜像。

[root@localhost ~]# hostnamectl set-hostname registry
[root@registry ~]# docker pull registry
[root@registry ~]# docker images
https://cmd.dayi.ink/uploads/upload_40aba1cfdb22bbf9e1a2cab4e483f5ad.png
https://cmd.dayi.ink/uploads/upload_738b42275f42dca96f0bdeda8b3cab36.png

步骤2

通过docker run命令启动一个registry容器,并挂载目录,利用容器提供私有仓库的服务,并通过docker ps命令查看registry容器是否运行。

[root@registry ~]# docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry
[c93669d06c5545b1f90fcb721bdb4da43b7add9fff7ede08b9e58822d1c235d1]
[root@registry ~]# docker ps -a
root@registry:/home/dayi# docker run -d -p 5000:5000 -v /opt/myregistry:/var/lib/registry registry
3469b41b2f69ec32f06eb5d004ba84141e3d7f499b6b343756c31b4a4879ca8d
root@registry:/home/dayi#
https://cmd.dayi.ink/uploads/upload_ff46a1231c4d49c2ed3c3887616b06e8.png

步骤3

执行命令

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

命令,如果显示如下信息,表示目前仓库里还没有镜像,此时私有仓库已经创建和启动完毕了。

{"repositories":[]}
root@registry:/home/dayi# curl -X GET http://127.0.0.1:5000/v2/_catalog
{"repositories":[]}
root@registry:/home/dayi# 
https://cmd.dayi.ink/uploads/upload_cc87699b4cb6dfbf8ffbc2157c1aca2c.png

步骤4

拉取busybox镜像,修改tag名称后,上传到本地仓库中。

[root@registry ~]# docker pull busybox
[root@registry ~]# docker images
[root@registry ~]# docker tag busybox:latest 192.168.5.100:5000/busybox:latest
[root@registry ~]# docker images
https://cmd.dayi.ink/uploads/upload_b297308db7fbb73fb13cb34d416e60b6.png

步骤5

将镜像192.168.5.100:5000/busybox上传到本地仓库中。

[root@registry ~]# docker push 192.168.5.100:5000/busybox
https://cmd.dayi.ink/uploads/upload_18874b7ad987965e834d79c13698a49e.png

步骤6

如果出现上述提示,表示本地仓库默认使用的是https协议进行上传。而当前采用是非https协议上传,可采用步骤6进行处理。修改/usr/lib/systemd/system/docker.service文件,在ExecStart参数后面添加–insecure-registry 192.168.5.100:5000。

https://cmd.dayi.ink/uploads/upload_9355907368b0de5e1b82482e863963a1.png
[root@registry ~]# vi /usr/lib/systemd/system/docker.service
// 修改ExecStart参数,修改完后,内容如下
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.5.100:5000

保存退出,重启docker服务。

[root@registry ~]# systemctl daemon-reload
[root@registry ~]# systemctl restart docker

重启registry容器。

[root@registry ~]# docker restart c93669d06c55
root@registry:/home/dayi# docker run -d -p 5000:5000 -v /opt/myregistry:/var/lib/registry registry
4d5dacc0842c47f7308100362bba7e0ed67dca3503092ee07b09d7f6a7275144
root@registry:/home/dayi# docker push 10.1.1.170:5000/busybox
Using default tag: latest
The push refers to repository [10.1.1.170:5000/busybox]
Get "https://10.1.1.170:5000/v2/": http: server gave HTTP response to HTTPS client
root@registry:/home/dayi# 
https://cmd.dayi.ink/uploads/upload_01f3a4ab676184121a216da1dec936b7.png

步骤7

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

[root@registry ~]# docker push 192.168.5.100:5000/busybox

root@registry:/home/dayi# docker push 10.1.1.170:5000/busybox
Using default tag: latest
The push refers to repository [10.1.1.170:5000/busybox]
Get "https://10.1.1.170:5000/v2/": http: server gave HTTP response to HTTPS client
root@registry:/home/dayi# vim /usr/lib/systemd/system/docker.service
root@registry:/home/dayi# vim /usr/lib/systemd/system/docker.service
root@registry:/home/dayi#  systemctl daemon-reload
root@registry:/home/dayi# systemctl restart docker
root@registry:/home/dayi# docker push 10.1.1.170:5000/busybox
Using default tag: latest
The push refers to repository [10.1.1.170:5000/busybox]
3d24ee258efc: Retrying in 1 second 
https://cmd.dayi.ink/uploads/upload_540da0d818a9d81d924d1a07a5e6632a.png

步骤8

在客户端1和客户端2上修改/usr/lib/systemd/system/目录下的docker.service文件,在ExecStart=/usr/bin/dockerd后面添加–insecure-registry 192.168.5.100:5000,保存后并重启docker服务。

--insecure-registry 10.1.1.170:5000

客户端1:

[root@localhost ~]# hostnamectl set-hostname node1
[root@node1 ~]# vi /usr/lib/systemd/system/docker.service
// 修改ExecStart参数,修改完后,内容如下
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.5.100:5000

保存退出,重启docker服务。

[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart docker
https://cmd.dayi.ink/uploads/upload_cd6bc25bb14ec27a2811fe0240e48ef0.png
https://cmd.dayi.ink/uploads/upload_3f3d51986227194633d4ecbedbabd82c.png

客户端2:

[root@localhost ~]# hostnamectl set-hostname node2
[root@node2 ~]# vi /usr/lib/systemd/system/docker.service
// 修改ExecStart参数,修改完后,内容如下
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.5.100:5000

保存退出,重启docker服务。

[root@node2 ~]# systemctl daemon-reload
[root@node2 ~]# systemctl restart docker
https://cmd.dayi.ink/uploads/upload_45516599ea36c2c5e1638b05c12f1d44.png

步骤9

在客户端node1和node2上拉取私有仓库中的busybox镜像。

[root@node1 ~]# docker pull 192.168.5.100:5000/busybox
[root@node1 ~]# docker images

[root@node2 ~]# docker pull 192.168.5.100:5000/busybox
[root@node2 ~]# docker images

node1

https://cmd.dayi.ink/uploads/upload_fcbcc1646edf9f961e0cd1e24387c4ed.png

node2

https://cmd.dayi.ink/uploads/upload_9d22bf06f5208dfae1ac662e5a37332b.png
没有标签
首页      未分类      云与虚拟化:实验3 搭建Docker私有仓库

发表回复

textsms
account_circle
email

dayi的大键盘

云与虚拟化:实验3 搭建Docker私有仓库
# 云与虚拟化:实验3 搭建Docker私有仓库 ## 实验要求 了解仓库,掌握搭建私有仓库的方法。 ## 前置准备 要求实验主机能够连接外网,已经正确安装Docker(版本号19.03.12),并…
扫描二维码继续阅读
2023-11-23