文章 分类 评论
147 1 60

站点介绍

此处是站点介绍

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

dayi 2023-11-23 694 0条评论 默认分类

首页 / 正文

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

实验要求

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

前置准备

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

表 3-1 各宿主机信息表

主机名IP地址节点角色
registry10.1.1.170/24私有仓库
node110.1.1.71/24客户端1
node210.1.1.59/24客户端2

先建立一个快照:

实验步骤

步骤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

步骤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#

步骤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# 

步骤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

步骤5

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

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

步骤6

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

[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# 

步骤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 

步骤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

客户端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

步骤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

node2

评论(0)

热门文章

最新评论

  • 阳光灿烂

    我问小狗遇到心事怎么办, 小狗说忘忘忘。

  • 阳光灿烂

    研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的。

  • qrpxbutnkw

    这篇文章不错!

  • riekozuuqu

    这篇文章不错!

  • kijvmoxsgz

    作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。

  • mruinannnb

    作者以简洁明了的语言,传达了深刻的思想和情感。

  • ixoqqxzijt

    在现有基础上可尝试多媒介形式呈现。

  • lvuqvjoznv

    文化底蕴深厚,引经据典信手拈来。

  • moczqjpzpu

    若能补充常见问题解答,会更具实用性。

  • sdxzopdbyg

    配图与文字相辅相成,直观易懂。

日历

2025年10月

   1234
567891011
12131415161718
19202122232425
262728293031 

友情链接

文章目录

推荐关键字: ctf docker linux 密码学 BUU BUU ctf XCTF 作业