【Docker】Docker学习⑦ - Docker仓库之单机Dokcer Registry

这篇具有很好参考价值的文章主要介绍了【Docker】Docker学习⑦ - Docker仓库之单机Dokcer Registry。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Docker简介

  • 参考:【Docker】Dokcer学习① - 简介

二、Docker安装及基础命令介绍

  • 参考:【Docker】Docker学习② - Docker安装及基础命令介绍

三、Docker镜像管理

  • 参考:【Docker】Docker学习③ - Docker镜像管理

四、Docker镜像与制作

  • 参考:【Docker】Docker学习④ - Docker镜像与制作

五、Docker数据管理

  • 参考:【Docker】Docker学习⑤ - Docker数据管理

六、网络部分

  • 参考:【Docker】Docker学习⑥ - 网络部分

七、Docker仓库之单机Dokcer Registry

Docker Registry作为Docker的核心组件之一负责镜像内容的存储与分发,客户端的docker pull以及push命令都将直接与registry 进行交互,最初版本的registry由Python实现,由于设计初期在安全性,性能以及API的设计上有着诸多的缺陷。该版本在0.9之后停止了开发,由新的项目distribution(新的docker register被称为Distrition)来重新设计并开发下一代Registry,新的项目由go语言开发,所有的API,底层存储方式,系统架构都进行了全面的重新设计,已解决上一代registry中存在的问题,2016年4月份registry2.0正式发布,docker1.6版本开始知识registry2.0,而8月份随着docker1.8发布,docker hub正式启用2.1版本registry全面替代之前的版本,新版registry对镜像存储格式进行了重新设计并和旧版不兼容,docker1.5和之前的版本无法读取2.0的镜像,另外Registry2.4版本之后支持了回收站机制,也就是可以删除镜像了,在2.4版本之前是无法支持删除镜像的,所以如果你要使用最好是大于Registry2.4版本的。
本部分将介绍通过官方提供的docker registry 镜像来简单搭建一套本地私有仓库环境。

1 下载docker registry镜像

	docker pull registry

2 搭建单机仓库

2.1 创建授权使用目录

	mkdir -p /docker/auth

2.2 创建用户

	cd /docker
	#报错
	docker run --entrypoint htpasswd registry -Bbn jack 123456 > auth/htpasswd
	#修改
	htpasswd  -Bbn test 123456 > auth/htpasswd

日志:

	[root@gbase8c_1 ~]# docker pull registry
	Using default tag: latest
	latest: Pulling from library/registry
	79e9f2f55bf5: Pull complete 
	0d96da54f60b: Pull complete 
	5b27040df4a2: Pull complete 
	e2ead8259a04: Pull complete 
	3790aef225b9: Pull complete 
	Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375
	Status: Downloaded newer image for registry:latest
	docker.io/library/registry:latest
	[root@gbase8c_1 ~]# mkdir -p /docker/auth  
	[root@gbase8c_1 ~]# cd /docker
	[root@gbase8c_1 docker]# docker images
	REPOSITORY                   TAG               IMAGE ID       CREATED         SIZE
	registry                     latest            b8604a3fe854   2 years ago     26.2MB
	[root@gbase8c_1 docker]# docker run --entrypoint htpasswd registry -Bbn jack 123456 > auth/htpasswd
	docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "htpasswd": executable file not found in $PATH: unknown.
	ERRO[0000] error waiting for container:  

2.3 验证用户密码

	cat auth/htpasswd
	[root@gbase8c_1 docker]# cat auth/htpasswd
	test:$2y$05$BCm9sruCprQymAV5vk5XKOybtlVb4vrftWXqbe5fbpjlq2suQPYwO

2.4 启动docker registry

	docker run -d -p5000:5000 --restart=always --name registry1 -v /docker/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry

2.5 验证端口和容器

日志:

	[root@gbase8c_1 docker]# docker run -d -p5000:5000 --restart=always --name registry1 -v /docker/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry
	ec968bda55f7068065688569d83ea6f4c53d413af39e6dbe4c06a1f4dd58178f
	[root@gbase8c_1 docker]# docker ps
	CONTAINER ID   IMAGE      COMMAND                   CREATED         STATUS         PORTS                                       NAMES
	ec968bda55f7   registry   "/entrypoint.sh /etc…"   4 seconds ago   Up 4 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   registry1
	[root@gbase8c_1 docker]# ss -ntl
	State      Recv-Q Send-Q  Local Address:Port Peer Address:Port              
	LISTEN     0      128                 *:5000            *:*                  

2.6 测试登录仓库

报错:

	[root@gbase8c_1 docker]# docker login 192.168.56.200:5000
	Username: test
	Password: 
	Error response from daemon: Get "https://192.168.56.200:5000/v2/": http: server gave HTTP response to HTTPS client
  • 解决方式1(无效):
	编辑各docker 服务器/etc/sysconfig/docker 配置文件如下
	#Server1:
	vim /etc/sysconfig/docker
	OPTIONS='--selinux-enabled --log-driver==journald'
	ADD_REGISTRY='--add-registry 192.168.56.200:5000'
	INSECURE_REGISTRY='--insecure-registry 192.168.56.200:5000'
	#重启docker
	systemctl restart docker
	#Server2:
	vim /etc/sysconfig/docker
	OPTIONS='--selinux-enabled --log-driver==journald'
	if [ -z "${DOCKER_CERT_PATH}" ];then
	    DOCKER_CERT_PATH=/etc/docker
	fi
	ADD_REGISTRY='--add-registry 192.168.56.200:5000'
	INSECURE_REGISTRY='--insecure-registry 192.168.56.200:5000'
	#重启docker
	systemctl restart docker
  • 解决方式2:
	[root@gbase8c_private docker]# cat /etc/docker/daemon.json
	{
		"insecure-registries":["192.168.56.199","192.168.56.200:5000"],   #←新增
		"registry-mirrors":["https://pkjijpqo.mirror.aliyuncs.com"]
	}
	#登录成功
	[root@gbase8c_private docker]# docker login 192.168.56.200:5000
	Username (test): test
	Password: 
	Login Succeeded

2.7 在Server1登陆后上传镜像

  • 2.7.1 镜像打tag
	docker tag jack/nginx-1.22.1:v1 192.168.56.200:5000/jack/nginx-1.22.1:v1
  • 2.7.2 上传镜像
	docker push 192.168.56.200:5000/jack/nginx-1.22.1:v1

日志:

	[root@gbase8c_1 docker]# docker tag jack/nginx-1.22.1:v1 192.168.56.200:5000/jack/nginx-1.22.1:v1
	[root@gbase8c_1 docker]# docker images
	REPOSITORY                              TAG               IMAGE ID       CREATED         SIZE
	jack/nginx-1.22.1                       v1                5ec2d0d6aa22   2 weeks ago     638MB
	192.168.56.200:5000/jack/nginx-1.22.1   v1                5ec2d0d6aa22   2 weeks ago     638MB
	[root@gbase8c_1 docker]# docker push 192.168.56.200:5000/jack/nginx-1.22.1:v1
	The push refers to repository [192.168.56.200:5000/jack/nginx-1.22.1]
	a7a030277385: Pushed 
	033b7c388a51: Pushed 
	62900648f903: Pushed 
	7bb7d3a7a010: Pushed 
	9e9129ee0c59: Pushed 
	382519f0e19e: Pushed 
	a4437975d033: Pushed 
	badae34ffc22: Pushed 
	26a72414b92b: Pushed 
	661b4c00d916: Pushed 
	74ddd0ec08fa: Pushed 
	v1: digest: sha256:145e675dbf1533dd5cf834a4131128fd0b8d0f3f7a959919fba782f2261a1164 size: 2621

2.8 Server2下载镜像并启动

  • 2.8.1 登录并从docker registry 下载镜像
	docker images
	docker login 192.168.56.200:5000
	docker pull 192.168.56.200:5000/jack/nginx-1.22.1:v1
  • 2.8.2 验证下载成功
	docker images
  • 2.8.3 从下载的镜像启动容器
	docker run -d --name docker-registry -p80:80 192.168.56.200:5000/jack/nginx-1.22.1:v1 nginx
  • 2.8.4 验证登录
    日志:
	[root@gbase8c_private docker]# docker login 192.168.56.200:5000
	Username (test): test
	Password: 
	Login Succeeded
	[root@gbase8c_private docker]# docker pull 192.168.56.200:5000/jack/nginx-1.22.1:v1
	v1: Pulling from jack/nginx-1.22.1
	Digest: sha256:145e675dbf1533dd5cf834a4131128fd0b8d0f3f7a959919fba782f2261a1164
	Status: Downloaded newer image for 192.168.56.200:5000/jack/nginx-1.22.1:v1
	[root@gbase8c_private docker]# docker images
	REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
	192.168.56.200:5000/jack/nginx-1.22.1   v1                  5ec2d0d6aa22        2 weeks ago         638MB
	[root@gbase8c_private docker]# docker run -d --name docker-registry -p80:80 192.168.56.200:5000/jack/nginx-1.22.1:v1 nginx
	2cf5864c064519853ead197bc1bba643eeb7dd21bac28be93bd9f7a7f876e409
	[root@gbase8c_private docker]# docker ps
	CONTAINER ID        IMAGE                                      COMMAND             CREATED             STATUS              PORTS                         NAMES
	2cf5864c0645        192.168.56.200:5000/jack/nginx-1.22.1:v1   "nginx"             8 seconds ago       Up 7 seconds        0.0.0.0:80->80/tcp, 443/tcp   docker-registry

八、Docker仓库之分布式Harbor

  • 参考:【Docker】Docker学习⑧ - Docker仓库之分布式Harbor

九、单机编排之Docker Compose

  • 参考:【Docker】Docker学习⑨ - 单机编排之Docker Compose文章来源地址https://www.toymoban.com/news/detail-821028.html

到了这里,关于【Docker】Docker学习⑦ - Docker仓库之单机Dokcer Registry的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker】Dokcer学习① - 简介

    统称来说,容器是一种工具,指的是可以装下其他物品的工具。 容器技术是虚拟化、云计算、大数据之后的一门新兴的并且是炙手可热的新技术,容器技术提高了硬件资源利用率、方便了企业的业务快速横向扩容、实现了业务宕机自愈功能,因此未来数年会是一个容器愈发流

    2024年01月24日
    浏览(31)
  • docker registry删除远程仓库镜像

    当集群内使用registry做为镜像仓库时,镜像长期积累会导致本地和远程仓库镜像占用大量的磁盘空间,这时我们需要对一些无用镜像进行定期清理。  从registry容器里面将/etc/docker/registry/config.yml复制出来: 默认config.yml内容如下: 设置config.yml,在storage节点添加delete配置设置为

    2024年02月11日
    浏览(42)
  • 【云原生】Docker私有仓库registry

        目录 1)用docker容器运行registry私有仓库服务。 2)运行私有仓库服务 3)镜像重命名(要上传的镜像名需要注明私仓的ip) 4)编辑docker配置文件(因为默认是拉取docker官方的镜像,需要重新指定) 5)其他dockerhost上传私有仓库 修改docker配置文件 查看仓库有哪些镜像 1)用dock

    2024年02月15日
    浏览(38)
  • Docker--harbor Docker--registry 私有仓库部署与管理

    拉取 registry 镜像 开启registries容器 添加私有仓库地址 使用配置文件 /etc/docker/daemon.json(没有时新建该文件)添加私有仓库地址 (在任何需要推送以及拉去镜像的docker宿主机上) 重新加载Docker守护程序  更改tag并上传 更改tag 推送到私有仓库 浏览器访问,查看存储的镜像 

    2024年02月15日
    浏览(54)
  • Linux:搭建docker私有仓库(registry)

    当我们内部需要存储镜像时候,官方提供了registry搭建好直接用,废话少说直接操作 在 Linux 上安装 Docker Desktop |Docker 文档 https://docs.docker.com/desktop/install/linux-install/ 安装 Docker 引擎 |Docker 文档 https://docs.docker.com/engine/install/ 官方文档写的非常详细,涵盖了各大平台  curl -XGET

    2024年02月20日
    浏览(39)
  • Docker registry镜像仓库,私有仓库及harbor管理详解

    目录 registry镜像仓库概述 Docker 镜像仓库(Docker Registry): registry 容器: 私有仓库概述 搭建本地私有仓库示例 Harbor概述 harbor架构 详解构成 Harbor由容器构成 Harbor部署示例 环境准备 部署Docker-Compose服务 部署 Harbor 服务 启动Harbor 查看 Harbor 启动镜像 创建一个新项目 在其他客

    2024年01月18日
    浏览(49)
  • 【云原生】Docker私有仓库 Registry&Habor

    目录 1.Docker私有仓库(Registry) 1.1  Registry的介绍 1.2 Registry的部署 步骤一:拉取相关的镜像 步骤二:进行 Registry的相关yml文件配置(docker-compose) 步骤三:镜像的推送  2. Registry的升级——Habor 2.1 Habor的简介 2.2 Habor的特性 2.3 Habor的构成​编辑 3. Harbor 部署  (1)部署

    2024年02月11日
    浏览(36)
  • 五、Docker仓库之https的registry搭建(二)

    本节我们分享更多的实用的仓库搭建使用方式。包括支持https的registry、Harbor、nexus。 准备站点证书(测试使用,用一个自己的测试域名,配置本地hosts) 如果你拥有一个公网域名,那很好,你很牛。当然也可以使用 openssl 自行签发证书。 这里我计划将要搭建的私有仓库地址

    2024年02月12日
    浏览(44)
  • Linux 本地 Docker Registry本地镜像仓库远程连接

    Docker Registry 本地镜像仓库,简单几步结合cpolar内网穿透工具实现远程pull or push (拉取和推送)镜像,不受本地局域网限制! 使用官网安装方式,docker命令一键启动,该命令启动一个registry的容器,版本是2,挂载宿主机端口是5000端口,挂载后,5000端口就是我们连接镜像仓库的本地端口 执行

    2024年01月21日
    浏览(52)
  • docker 查看registry私有仓库的镜像tag列表

    前提条件:已经正确部署docker和私有仓库registry。并且有私有仓库的登录用户名,密码。。需要查看某一个镜像的tag列表。 本文验证地址:【私有ip】为192.168.0.200  【images】为centos。私有仓库用户名:root,密码:password 提示:如果按照下面方式访问不成功,请注意检查,本机

    2023年04月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包