Docker-仓库(registry)

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们在上一章,讲了虚拟化,虚拟化是把硬件虚拟化,然后创建出来的虚拟机完全隔离,而Docker则是软件(内核)虚拟化,他的隔离性会低于虚拟机。我们将通过3-4周来讲解Docker相关内容,由于涉及到内容较多,就不一一列出来具体的细节,主要从以下几个方面来讲解:

Docker基本情况

Docker基本命令

Dockerfile

Docker镜像

Docker仓库(本小节属于)

Docker原理

Docker网络&存储&日志

Docker-Compose

Docker番外篇

前面我们无论是从公网仓库下载的镜像还是通过Dockerfile编写的镜像,在绝大多数的情况下,都需要上传到仓库里面,然后再通过仓库分发到其他需要使用的节点,那么仓库是怎么创建的呢?

Docker的官方给我们提供了一个仓库,这个仓库也是以容器方式运行的,这个仓库的镜像名字是registry。

1.下载仓库镜像

bash 复制代码
#这个地址不一定持续可用
docker pull m.daocloud.io/docker.io/library/registry

2.运行仓库容器

首先这里需要注意就是磁盘挂载,要确保用户上传的数据持久化保存在对应的服务器,不会因为容器删除或者故障而丢失数据。其次就是要尽可能包括在他的可用性,需要需要确保服务或者机器重启这个容器会自动启动。再次就是要保证他5000端口对外暴露和容器的名字要方便识别。

bash 复制代码
#当然你还可以根据需要添加其他参数
docker run -d \
-v /data:/var/lib/registry \
--restart=always \
-p 5000:5000 \
--name registry \
m.daocloud.io/docker.io/library/registry

3.修改容器tag

ip路径和名字以现场实际为准。

bash 复制代码
[root@localhost ~]# docker tag \
> m.daocloud.io/docker.io/library/registry \
> 192.168.31.205:5000/registry

4.上传镜像

yaml 复制代码
#上传镜像需要先修改daemon.json,并重启docker服务
{
    "insecure-registries": ["192.168.31.43:5000"]
}
[root@localhost ~]# docker push \
> 192.168.31.205:5000/registry
Using default tag: latest
The push refers to repository [192.168.31.205:5000/registry]
7827cbf539f4: Pushed 
d28d4e94d6f3: Pushed 
028476fc17e0: Pushed 
96a01afdff54: Pushed 
f9fc769d3350: Pushed 
latest: digest: sha256:2e3dacd68b23ae633b4e46e2702f7c4fcfc1e6bd0469935f5fdc9d8ef630179a size: 1363

5.查看仓库有哪些镜像

csharp 复制代码
# 当然这里只有一个镜像,如果有多个镜像则在[]里面可以到具体的名字
[root@localhost ~]# curl 192.168.31.205:5000/v2/_catalog
{"repositories":["registry"]}

6.查看镜像有哪些tag

csharp 复制代码
#这里的rgistry就是容器的名字,具体以现场路径和名字为准
#下面的latest 和2.8.3 就是他有的tag
[root@localhost ~]# curl 192.168.31.205:5000/v2/registry/tags/list
{"name":"registry","tags":["latest","2.8.3"]}

7.镜像&tag删除

一般而言,默认情况下是不能删除镜像和tag,后面我们会讲一个开源的仓库:Harbor他可以通过web平台进行操作,就可以删除。

总结

这个仓库,相对还是很简单的,需要理解就2个地方:仓库的ip+端口就是他上传的服务器;后面的路径和名字则是需要上传的路径和镜像名字。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
AI服务老曹4 小时前
深度解析:基于 Docker 部署与 GB28181/RTSP 统一接入的跨平台 AI 视频管理系统(附源码交付与边缘计算架构设计)
人工智能·docker·音视频
三无推导4 小时前
Prompt Optimizer 安装部署教程:用 Docker 快速搭建本地提示词优化工具
人工智能·ubuntu·docker·容器·性能优化·prompt·持续部署
都在酒里4 小时前
Linux字符设备驱动开发(三):引入并发控制——使用mutex保护共享数据
linux·运维·驱动开发
盟接之桥4 小时前
什么是电子数据交换(EDI)|AS2 协议详解
运维·服务器·网络·安全·低代码·汽车·制造
IT策士4 小时前
Docker 从 0 到 1 再到 Kubernetes 实战:第 5 篇 Dockerfile 最佳实践与多阶段构建
docker·容器·kubernetes
慵懒的猫mi5 小时前
从 Windows 到 deepin:Electron 软件无损移植实战
linux·windows·deepin
网安情报局5 小时前
抗 DDoS 的核心:黑白名单、限速、流量牵引技术对比分析
运维·服务器·网络
坤昱5 小时前
cfs调度类深入解刨——最新内核细节分析1
linux·cfs·cfs调度·linux 7.1·eevdf·核心调度结构·linux最新调度分析
huohaiyu5 小时前
深入解析JVM核心原理与运行机制
运维·服务器·jvm
MC皮蛋侠客5 小时前
Perf 火焰图深度实战:CPU 性能分析与异常排查完全指南
linux·c++·性能分析·perf·火焰图