013、docker的轻量级私有仓库之docker-registry
本文最后更新于 257 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com

docker的轻量级私有仓库之docker-registry

一.私有仓库概述

1.为什么要有私有仓库

    在讲解使用私有仓库之前,我们需要分析为什么要有私有仓库,可参考以下两点:
        (1)速度慢,官方的镜像仓库在国外,访问速度不言而喻;
        (2)安全性底,如果企业开发的核心代码上传到官方的镜像仓库,这意味着大家都能看到企业内部的代码;

    综上所述,我们急需一款私有仓库的解决方案。

2.主流的私有仓库有哪些

    对于docker的私有仓库有很多,但相对主流的我们课程里只会涉及两款,即docker-registry和harbor。

    docker-registry:
        是一个轻量级的镜像仓库,基本上不太占用内存,很适合学习环境中使用。

    harbor:
        对内存有要求,宿主机最少得拥有2G内存,对于个别用户,可能它相对重量级了,但对于企业它是主流。

二.部署docker-registry

1.下载镜像

[root@docker201.oldboyedu.com ~]# docker pull registry

image-20210621183655101

2.启动registry私有镜像仓库

docker run -d -p 5000:5000 --restart=always --name oldboyedu-image-registry -v /var/lib/registry registry

image-20210621184543758

3.查看镜像地址

如下图所示,访问:"http://docker201.oldboyedu.com:5000/v2/_catalog"

image-20210621191025847

三.将镜像上传到私有镜像仓库

1.为镜像打tag

[root@docker201.oldboyedu.com ~]# docker tag mysql:8.0 docker201.oldboyedu.com:5000/oldboyedu/mysql:8.0

温馨提示:
    如下图所示,我们要为镜像打上相应的tag,以便于方便咱们将其上传到指定的镜像仓库。默认是官方的镜像仓库。

image-20210621185231794

2.添加信任仓库,默认协议是https协议,而我们刚刚搭建的私有仓库是http协议。

[root@docker201.oldboyedu.com ~]# vim /etc/docker/daemon.json 
[root@docker201.oldboyedu.com ~]# 
[root@docker201.oldboyedu.com ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://tuv7rqqq.mirror.aliyuncs.com"],
  "insecure-registries": ["docker201.oldboyedu.com:5000"]
}
[root@docker201.oldboyedu.com ~]# 
[root@docker201.oldboyedu.com ~]# systemctl restart docker

温馨提示:
    记得重启docker服务使之生效。

3.上传镜像

[root@docker201.oldboyedu.com ~]# docker image push docker201.oldboyedu.com:5000/oldboyedu/mysql:8.0 

温馨提示:
    镜像推送成功后,请查看registry中是否有记录哈。

image-20210621191308648

四.使用镜像

1.下载镜像

[root@docker202.yinzhengjie.com ~]# docker image pull docker201.oldboyedu.com:5000/oldboyedu/mysql:8.0

温馨提示:
    如下图所示,在下载镜像的时候,请确保"/etc/docker/daemon.json"和"/etc/hosts"中的数据。

image-20210621192233653

2.删除本地镜像

[root@docker202.yinzhengjie.com ~]# docker image rm docker201.oldboyedu.com:5000/oldboyedu/mysql:8.0 

温馨提示:
    是否发现下载镜像和删除镜像都一样了,本来就是,因为我们依旧是使用的镜像管理命令。

image-20210621192539897

3.其它操作

由于操作基本上一样,我就不一一展示了。

五.删除registry私有仓库中的镜像文件

1.进入到registry的容器中

[root@docker201.oldboyedu.com ~]# docker container exec -it registry sh

image-20210621193209066

2.删除元数据信息

/var/lib/registry/docker/registry/v2 #  rm -rf repositories/oldboyedu/mysql/

image-20210621193605339

3.手动回收无用文件

/ # registry garbage-collect /etc/docker/registry/config.yml 

温馨提示:
    回收无用文件后,不难发现镜像的存储空间也得到了部分释放哟~

image-20210621194426016

六.可能会遇到的错误

1.http: server gave HTTP response to HTTPS client

报错原因:
    如下图所示,默认协议是https,而我们的仓库响应的http协议。、

解决方案:
    [root@docker201.oldboyedu.com ~]# vim /etc/docker/daemon.json 
    [root@docker201.oldboyedu.com ~]# 
    [root@docker201.oldboyedu.com ~]# cat /etc/docker/daemon.json 
    {
      "registry-mirrors": ["https://tuv7rqqq.mirror.aliyuncs.com"],
      "insecure-registries": ["docker201.oldboyedu.com:5000"]
    }
    [root@docker201.oldboyedu.com ~]# 

image-20210621190253432

谨此笔记,记录过往。凭君阅览,如能收益,莫大奢望。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇