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+端口就是他上传的服务器;后面的路径和名字则是需要上传的路径和镜像名字。

运维小路

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

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

相关推荐
Fcy6486 小时前
Linux下 进程间关系与守护进程
linux·运维·服务器·守护进程
g10565591397 小时前
公有云_云运维服务
java·运维·服务器
码农小韩7 小时前
Linux驱动理论(二)——Linux字符设备驱动
linux·嵌入式软件开发·linux操作系统·linux应用开发·linux驱动理论
well06127 小时前
Linux粘滞位与Makefile机制深度解析
linux·运维·服务器
再写一行代码就下班7 小时前
linux sh脚本在windows修改导致无法使用解决方式
java·linux·centos
hzxpaipai7 小时前
杭州企业官网怎么建设?从策划到上线的5步建站方法
运维·服务器·前端·网络
哲霖软件7 小时前
非标机械设备公司怎么做信息化?破解通用ERP水土不服难题
大数据·运维
额额额对了7 小时前
SPI通信
linux·c语言·汇编·单片机·嵌入式硬件·arm
子木HAPPY阳VIP8 小时前
Ubuntu 关闭防火墙操作步骤
linux·运维·ubuntu
王振超wzc8 小时前
嵌入式开发环境搭建--WM软件安装,Ubuntu操作系统安装
linux·运维·ubuntu