Docker本地镜像管理之Docker Registry

一个系统可能包含着很多个微服务即有很多个镜像,当镜像越来越多的时候,就必须得有一个地方来管理这些镜像,Docker官方提供了Docker Hub来维护管理所有的镜像,只是对于免费用户而言,只能创建一个私有仓库,付费用户才拥有更多私有仓库的权限,对此官方开源了Docker Registry的源代码,我们可以通过它在局域网内部搭建私有的镜像注册中心。另外国内的阿里云也支持镜像管理。相当于本地有个私有的Docker hub。
开始搭建本地注册中心

1、下载镜像Docker Registry

docker pull registry

 

2、创建本地私有容器库

# 创建一个名为registry的容器,将宿主机5000端口映射到容器的5000端口,将宿主机的/myregistry目录映射到容器/tmp/registry目录作为数据容器卷

docker run -id -p 5000:5000 -v /myregistry/:/tmp/registry --privileged=true registry

默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便与宿主机联调。

docker挂载主机目录访问如果出现cannot open directory:Permission defined,解决办法:在挂载目录后多加一个--privileged=true即可。

如果是centos7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为。

在SELinux里挂载目录被禁止掉了,如果要开启,我们一般会用--privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使使用该参数,container内的root拥有真正的root权限,否则container内的root只是外部的一个普通用户权限。

端口5000->5000,左边是主机端口,右边是docker 容器实例端口。

3、验证私服库上的镜像

浏览器访问:http://192.168.63.173:5000/v2/,查看本地镜像列表

或者命令执行

[root@localhost ~]# curl -XGET http://192.168.63.173:5000/v2/_catalog
{"repositories":[]}

发现本地没有任何镜像。

开始案例测试

运行一个doker实例,然后编译安装好指定的环境配置或者新升级的环境镜像

4、将新镜像myubuntu:1.0修改为符合私服规范的tag

docker tag myubuntu:1.0 192.168.63.173:5000/myubuntu:1.0  //相当于clone出一份镜像,看下图

由于docker私服库默认不支持http形式推送,所以需要做配置,取消默认配置,修改完后如果不生效,建议重启docker

 vi /etc/docker/daemon.json
{
    "insecure-registries":["192.168.63.173:5000"]
}

重新启动docker服务以及本地私服库

systemctl restart docker
systemctl status docker
docker run -id -p 5000:5000 -v /myregistry/:/tmp/registry --privileged=true registry

5、push推送到私服库

[root@localhost ~]# docker push 192.168.63.173:5000/myubuntu:1.0
The push refers to repository [192.168.63.173:5000/myubuntu]
ff9ba62520f1: Pushed 
c5ec52c98b31: Pushed 
1.0: digest: sha256:8626f06773a2d40bcab8205b6d1414aeb04a5c0a889d452686fd4cd8d245a24b size: 741

6、验证私服库镜像有哪些

curl -XGET http://192.168.63.173:5000/v2/_catalog

7、删除本地镜像,pull私服镜像

 

docker pull 192.168.63.173:5000/myubuntu:1.0

  

 运行测试

 docker run -it 192.168.63.173:5000/myubuntu:1.0 /bin/bash

ok

posted @ 2022-06-08 23:35  温柔的风  阅读(1435)  评论(0编辑  收藏  举报