Docker官方仓库Registry

Docker Registry 是Docker官方一个镜像,可以用来储存和分发Docker镜像。目前比较流行的两个镜像私库是Docker Registry ,HarBor 其中HarBor最合适企业级应用,提供良好的WEB界面进行管理,Registry在使用和部署上更为简单

环境准备:

  • 仓库所在机器IP:192.168.49.83
  • Registry镜像:docker pull registry
  • 测试机器IP:192.168.49.82

无认证方式部署

无认证方式部署后,拉取和推送镜像都不需要进行认证,此方法简单高效,适合公司内网环境

1、执行命令创建registry容器,默认为5000端口,如下:

docker run -itd --name registry -p 5000:5000 --restart always registry

2、修改192.168.49.82的/etc/docker/daemon.json文件,添加仓库地址,重启docker,如图:

给镜像打标签,然后推送到仓库,如图:

3、通过浏览器访问即可看到仓库中镜像,如图:

查看镜像具体的标签信息,可查看仓库中镜像都有哪些版本,如图:

每次上传到仓库中的镜像都是存储在/var/lib/registry目录下的

有认证方式部署

registry运行后,默认情况下在路径/etc/docker/registry下会有一个config.yml文件,此文件可以理解为配置文件,定义了端口,存储路径等,后续认证文件也在这里定义,如图:

1、首先生成密码文件,使用htpasswd命令生成,输出到registry.passwd文件中,如下:

htpasswd -nbB registry Registry2024 >> registry.passwd

2、定义config.yml文件(可先运行临时容器将容器里的copy出来),添加认证信息,如图:

3、启动registry,如下:

docker run -itd --name registry -p 5000:5000 -v /root/config.yml:/etc/docker/registry/config.yml -v /root/registry.passwd:/etc/docker/registry/registry.passwd registry

容器外的路径根据需要修改

4、登录192.168.49.82,登录仓库,然后验证推送,如图:

附加:

如果要通过域名来访问registry,可在创建容器的时候,指定域名环境变量,如下:

#!/bin/bash
docker run -itd --name registry --restart=always \
-p 5000:5000 \
-e REGISTRY_HTTP_HOST=http://registry.test.cn \
-v /data/registry:/var/lib/registry registry:latest

通过nginx,配置请求域名到真实的registry仓库地址,如图:

修改/etc/docker/daemon.json,添加仓库地址后重启docker,如图:

给镜像打tag后,推送到仓库,如图:

最后查看仓库内容,如图:

标签