Docker本地私有仓库搭建步骤简单展示

Docker本地私有仓库搭建步骤简单展示

仓库原理

Docker模型的核心部分是有效的利用分层镜像机制,镜像可以通过分层来进行继承,基于基础镜像,可以制作各种具体的应用镜像。不同的Docker容器可以共享一些基础的文件系统层,同时再加上自己独有的改动层,大大提高了存储的效率。由于最终镜像最终是以tar.gz的方式静态存储在服务器端,这种存储适用于对象存储而不是块存储。

一次docker pull (即用户从客户端向仓库拉镜像),发生的交互。
在这里插入图片描述

  1. 客户端向索引请求ubuntu镜像下载地址

  2. 索引回复:ubuntu所在仓库A、 ubuntu镜像的校验码(Checksum)和所有层的Token

  3. 客户端向仓库A请求 ubuntu的所有层(仓库A负责存储ubuntu,以及它所依赖的层)

  4. 仓库A向索引发起请求,验证用户Token的合法性

  5. 索引返回这次请求是否合法

  6. 客户端从仓库下载所有的层,仓库从后端存储中获取实际的文件数据,返给客户端

具体配置步骤参考官方文档:https://docs.docker.com/registry/deploying/

一、Docker私有仓库搭建流程

搭建企业私有的镜像仓库,满足从开发环境推送和拉取镜像。当我们使用k8s来编排和调度容器时,操作的基本单位是镜像,所以需要从仓库去拉取镜像到当前的工作节点。本来使用公共的docker hub完全可以满足我们的需求,也非常方便,但是上传的镜像任何人都可以访问,其次docker hub的私有仓库又是收费的,所以从安全和商业两方面考虑,企业必须搭建自己的私有镜像仓库。

#首先下载registry 镜像
docker pull registry

#在daemon.json文件中添加私有镜像仓库地址
vim /etc/ docker/daemon.json
{
"insecure-registries": ["192.168.80.10:5000"],
#添加,注意用逗号结尾
"registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"]
}
systemctl restart docker.service

#运行 registry 容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
===================================================
-itd: 在容器中打开一个伪终端进行交互操作,并在后台运行
-v: 把宿主机的/data/registry目录绑定到容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的
持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了
--restart=always: 这是重启的策略,在容器退出时总是重启容器
--name registry: 创建容器命名为registry
registry:latest:这个是刚才pull下来的镜像
====================================================
Docker容器的重启策略如下:
no:默认策略,在容器退出时不重启容器
on-failure: 在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3 :在容器非正常退出时重启容器,最多重启3
always: 在容器退出时总是重启容器
unless-stopped: 在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

#为镜像打标签
docker tag centos:7 192.168.80.10:5000/centos:v1

#上传到私有仓库
docker push 192.168.80.10:5000/centos:v1

#列出私有仓库的所有镜像
curl http://192.168.80.10:5000/v2/_catalog

#出私有仓库的centos镜像有哪些tag
curl http://192.168.80.10:5000/v2/centos/tags/list
#先删除原有的centos的镜像,再测试私有仓库下载
docker rmi -f 8652b9f0cb4c
docker pull 192.168.80.10:5000/centos:v1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值