zl程序教程

您现在的位置是:首页 >  其他

当前栏目

搭建私有镜像仓库registry

2023-04-18 16:11:09 时间

Registry是docker中用来配置自己的私有镜像仓库的。

拉取registry的镜像:

[root@iZbp184c49hy62wqvvzrwzZ /]# docker pull registry
Using default tag: latest
latest: Pulling from library/registry
6a428f9f83b0: Pull complete 
90cad49de35d: Pull complete 
b215d0b40846: Pull complete 
429305b6c15c: Pull complete 
6f7e10a4e907: Pull complete 
Digest: sha256:265d4a5ed8bf0df27d1107edb00b70e658ee9aa5acb3f37336c5a17db634481e
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest

查看本地的镜像

[root@iZbp184c49hy62wqvvzrwzZ /]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
registry     latest    b2cb11db9d3d   8 days ago     26.2MB

运行此镜像并生成响应的容器 -v (将上传的镜像挂载到本地)

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

-p : 端口映射

--restart=alawys (docker启动时自动启动)

-v 将容器中的指定的文件夹挂载到本地

查询运行中的容器(看是否启动成功)

[root@iZbp184c49hy62wqvvzrwzZ registry]# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED         STATUS         PORTS                    NAMES
bad377d59f30   registry:latest   "/entrypoint.sh /etc…"   9 seconds ago   Up 7 seconds   0.0.0.0:5000->5000/tcp   registry

访问测试(有防火墙的需要配置一下) 出现如下情况则表示搭建成功了

ip:端口/v2/

测试上传

将镜像标记、归入指定仓库 声明:因作者多次尝试记录。导致本文中新镜像的名称未保持统一,实际操作时请注意。建议自定义名称

docker tag redis "ip":"端口"/redis(此处为镜像新名称)

查看修改后的镜像

[root@iZbp184c49hy62wqvvzrwzZ /]# docker images
REPOSITORY                TAG       IMAGE ID       CREATED        SIZE
47.96.132.89:5000/redis   latest    fad0ee7e917a   3 months ago   105MB
redis                     latest    fad0ee7e917a   3 months ago   105MB

上传 归类 后的镜像 发现出现以下问题

[root@iZbp184c49hy62wqvvzrwzZ /]# docker push 47.96.132.89:5000/redis
Using default tag: latest
Error response from daemon: Get https://47.96.132.89:5000/v2/: http: server gave HTTP response to HTTPS client

这是因为我们启动的registry服务不是安全可信赖的。修改docker的相关的配置

文件:/etc/docker/daemon.json

添加以下蓝色内容:

{
"registry-mirrors":[ "https://pee6w651.mirror.aliyuncs.com"],"insecure-registries": ["私有镜像的ip(安装registry的ip):其端口"]
}
重新启动docker:systemctl restart docker

启动registry(上面已经设置自动启动了,此处就无需自己启动了)

上传镜像到自己的仓库

docker push 47.96.132.89:5000/redis

查看访问其仓库目录(注:和上面url不一样)

在本地查看上传的镜像

拉取上传的镜像

1、先将本地的删除了

dcoker rmi 镜像名称(tag生成的镜像id和老的一样,故此处使用名称删除)

docker rmi 47.96.132.89:5000/redistest

2、拉取上传的镜像

docker pull 镜像名称

删除私有镜像仓库的镜像

1、找到你挂载的目录

2、找到文件夹 repositories

3、在repositories中删除要删除的镜像即可