您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

Docker仓库管理实战:公共与私有仓库

时间:2024-05-15 13:32:07  来源:微信公众号  作者:凡夫编程

核心内容

  • Docker公共仓库与私有仓库的概述。
  • 公共仓库(Docker hub)登入与登出命令使用详解。
  • 如何搭建一个简单的私有仓库。
  • 如何在搭建的私有仓库内,实现私有镜像的查询、上传、下载。

公共仓库与私有仓库

Docker 镜像仓库是存储和管理 Docker 镜像的地方。它可以是公共或私有的,并且提供了一个集中式的地方来分享、存储和管理 Docker 镜像。这有点像Github和gitlab,只不过github和gitlab是一个代码托管平台,在平台上托管的是代码,这里托管是各种的镜像。

下面是公共镜像仓库和私有镜像仓库两种仓库类型的典型代表:

  • Docker Hub:Docker Hub 是 Docker 公司提供的官方镜像仓库,包含了数量庞大的公共镜像,用户可以通过 Docker Hub 在云端存储和分享自己的镜像。你可以在 Docker Hub 上找到各种开源软件的官方和社区维护的镜像,也可以自己创建账号并上传自己的镜像。
  • Harbor:Harbor 是一个开源的企业级 Docker 镜像仓库服务,提供了安全、可信赖的镜像存储和管理功能。它支持多种存储后端,并提供了灵活的访问控制和权限管理功能,适用于企业内部使用。

这些镜像仓库都提供了丰富的功能和服务,可以满足不同场景下的需求。如果用户想要根据自己的需求选择合适的镜像仓库服务来存储和管理 Docker 镜像,那么公共镜像仓库与私有镜像仓库的区别是需要提前了解清楚的:

访问权限

  • 公共镜像仓库:公共镜像仓库是开放的,任何人都可以访问其中的镜像,无需进行身份验证或付费。用户可以通过搜索功能找到并下载公共仓库中的镜像。
  • 私有镜像仓库:私有镜像仓库是受限的,只有授权的用户才能访问其中的镜像。通常需要进行身份验证,并且可能需要付费订阅才能访问。私有仓库适用于存储和分享组织内部使用的敏感或专有的镜像。

安全性

  • 公共镜像仓库:公共镜像仓库中的镜像可能来自各种来源,包括社区贡献者和官方维护者。尽管大多数镜像都是安全的,但用户应该注意安全漏洞和恶意代码的可能性。
  • 私有镜像仓库:私有镜像仓库受到组织内部的管控和监管,可以更好地控制镜像的来源和内容,提高了安全性。

定制化和扩展性

  • 公共镜像仓库:公共镜像仓库通常包含了大量常用的镜像,用户可以快速获取和使用。然而,由于是公开的,用户可能无法定制和扩展其中的镜像。
  • 私有镜像仓库:私有镜像仓库可以根据组织的需求定制和扩展镜像,满足特定的业务需求。用户可以根据自己的需求创建和管理自己的镜像,并对其进行定制和扩展。

成本

  • 公共镜像仓库:公共镜像仓库通常是免费的,用户可以免费访问其中的镜像并使用。
  • 私有镜像仓库:私有镜像仓库可能需要付费订阅才能访问和使用。成本取决于提供商和订阅计划的具体定价。

登入镜像仓库

docker login 命令用于登录到 Docker Hub 或其他 Docker镜像仓库服务。登录成功后,可以通过 Docker客户端来推送(push)或拉取(pull)镜像到该镜像仓库。

基本语法

docker login [OPTIONS] [SERVER]

各部分的含义如下:

  • OPTIONS:可选参数,用于指定一些额外的选项和配置。
  • SERVER:要登录的 Docker镜像仓库服务的地址。如果不提供该参数,默认将登录到 Docker Hub。

其中OPTIONS部分常见的选项主要是两个:

  • -u, --username:用户名
  • -p, --password:密码

使用示例

登录到 Docker Hub:

docker login

图片图片

这会进入一个交互式对话中,提示你输入用户名和密码。输入正确的用户名和密码即可成功登入;

如果你想通过命令行提供用户名和密码,可以使用 -u 和 -p 选项:

docker login -u USERNAME -p PASSWORD

如果要登录到私有的镜像仓库服务,需要提供相应的私有镜像仓库服务地址,REGISTRY_URL为私有仓库服务的地址:

docker login REGISTRY_URL

登录成功后,将会在终端中看到登录成功的提示信息,并且 Docker 客户端将会在后续的操作中使用你提供的凭据来与镜像仓库服务端进行通信。

请注意,登录到 Docker Registry 时,密码会以明文形式传输,因此请确保在安全的环境中使用 docker login 命令,并避免在公共场所或非安全的网络中使用该命令。

登出镜像仓库

docker logout 命令用于注销当前登录的 Docker 用户,从 Docker Hub 或其他 Docker镜像仓库服务中退出登录状态。

基本语法

docker logout [SERVER]

其中,SERVER 参数是可选的,用于指定要注销登录的 Docker Registry 的地址。如果不提供该参数,默认将注销当前登录的 Docker Hub 账号。

使用示例

注销当前登录的 Docker Hub 账号:

docker logout

如果你当前已经登录到私有的 Docker Registry,可以提供相应的 Registry 地址来注销登录状态:

docker logout REGISTRY_URL

执行命令后,你将会看到注销成功的提示信息,并且 Docker客户端将不再使用之前提供的凭据来与 Registry 进行通信。

私有仓库管理

在开源的企业级Docker私有仓库工具中,Harbo是一个典型代表,相对比较流行,而Docker 官方也提供了一种开源镜像仓库工具 Docker Registry,相较于Harbor,Docker Registry在功能的丰富性上要差一些。下面是两者在功能性上的一些区别:

功能扩展

  • Docker Registry:Docker Registry 是 Docker 公司提供的开源镜像仓库服务,提供了基本的镜像存储和传输功能。它可以作为 Docker Engine 的一部分运行,并提供了基于 HTTP API 的标准接口。
  • Harbor:Harbor 是一个由 VMware 发起的开源企业级 Docker Registry 服务,构建在 Docker Registry 2.0 之上,提供了更丰富的功能和更高级的特性。除了基本的镜像存储和传输功能外,Harbor 还提供了许多高级功能,如安全扫描、RBAC 权限控制、镜像复制和同步、镜像签名等。

安全性和权限控制

  • Docker Registry:Docker Registry 提供了基本的身份验证功能,但在权限控制方面相对较弱。它缺乏对镜像内容的安全扫描和审计功能。
  • Harbor:Harbor 提供了更强大的安全性和权限控制功能。它支持基于角色的访问控制(RBAC)、LDAP/AD 集成、镜像内容的漏洞扫描和安全审计,以及镜像签名和验证等功能,能够帮助用户更好地管理和保护镜像内容的安全性。

镜像复制和同步

  • Docker Registry:Docker Registry 本身不提供镜像复制和同步功能,需要用户自行实现。
  • Harbor:Harbor 支持镜像复制和同步功能,可以在多个 Harbor 实例之间同步镜像,以实现高可用性和灾备备份。

多租户支持:

  • Docker Registry:Docker Registry 不提供原生的多租户支持,所有用户和仓库都在同一个命名空间下。
  • Harbor:Harbor 提供了多租户支持,可以在不同的项目或组织之间划分不同的权限和访问控制策略,确保各个租户之间的隔离和安全性。

总的来说,Harbor 在 Docker Registry 的基础上提供了更多的高级功能和安全性控制,适用于更复杂的企业级应用场景。

如果在实际工作应用中,绝对更推荐Harbor。而这篇这里主要是想和大家分享一下私有镜像仓库管理中一些基础功能、通用操作。因此,这里我采用了Docker官方的开源镜像仓库服务Docker Registry。在后面会单独来介绍把Harbor安装、使用的详细方法。

安装 Docker Registry:

直接使用docker run命令,从Docker Hub中拉取Docker Registry镜像并运行容器:

docker run -d -p 5000:5000 --restart=always --name registry registry:latest

这将在服务器上启动一个 Docker Registry 容器,监听在默认端口 5000 上,并且在容器退出时自动重启,确保 Docker Registry 服务始终可用。

给本地镜像打上远程仓库的标签:

docker tag myimage your-registry/myimage:latest

将镜像推送到远程仓库:

docker push your-registry/myimage:latest

这样,myimage 镜像的 latest 版本就会被推送到了名为 your-registry 的私有仓库中。

如果想使用私有仓库中的镜像:

docker pull your-registry/myimage:latest


Tags:Docker   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Docker仓库管理实战:公共与私有仓库
核心内容 Docker公共仓库与私有仓库的概述。 公共仓库(Docker hub)登入与登出命令使用详解。 如何搭建一个简单的私有仓库。 如何在搭建的私有仓库内,实现私有镜像的查询、上传...【详细内容】
2024-05-15  Search: Docker  点击:(0)  评论:(0)  加入收藏
Docker从入门到精通:Docker 容器数据卷详解
前言在 Docker 中,数据卷(Volume)是一种可用于持久化存储数据的重要机制。它允许容器与宿主机之间或者容器之间共享数据,并且能够保留数据,即使容器被删除也不会丢失。本文将介绍...【详细内容】
2024-04-26  Search: Docker  点击:(7)  评论:(0)  加入收藏
Docker 和传统虚拟机有什么区别?
我有一个程序员朋友,他每年情人节都要送女朋友一台服务器。他说:“谁不想在过节当天收到一台 4核8g 的服务器呢?”“万一对方不要,我还能留着自己用。” 给他一次过节的机会,他能...【详细内容】
2024-03-26  Search: Docker  点击:(19)  评论:(0)  加入收藏
掌握Docker网络驱动程序:优化容器通信
Docker为在容器内包装、交付和运行应用程序提供了一个强大的平台,从而彻底改变了容器化。网络是容器化的重要组成部分,Docker提供了各种网络驱动程序来支持容器之间的通信以...【详细内容】
2024-03-22  Search: Docker  点击:(20)  评论:(0)  加入收藏
如何基于Docker镜像逆向生成Dockerfile
引言你是否曾经遇到过一个想要使用的 Docker 镜像,但却无法修改以适应你的特定需求?或者你可能发现了一个喜欢的 Docker 镜像,但想要了解它是如何构建的?在这两种情况下,将 Docke...【详细内容】
2024-03-07  Search: Docker  点击:(50)  评论:(0)  加入收藏
Docker与Docker Compose入门:释放你应用部署的威力
今天给大家介绍一项强大而有趣的技能,那就是使用 Docker 和 Docker Compose 来释放你的应用部署的威力!无论你是一名开发人员还是系统管理员,掌握这个技能都将为你的工作带来巨...【详细内容】
2024-01-17  Search: Docker  点击:(87)  评论:(0)  加入收藏
Docker镜像与容器的交互及在容器内部执行代码的原理与实践
Docker作为一种流行的容器技术,已经成为现代应用程序开发和部署的重要工具。在Docker中,镜像是构建和运行容器的基础,而容器则是基于镜像创建的可执行实例。Docker镜像与容器的...【详细内容】
2024-01-10  Search: Docker  点击:(116)  评论:(0)  加入收藏
如何在 Ubuntu 上安装 Docker
使用 Docker 意味着开启一个新的计算领域,但如果你刚刚开始使用 Docker,安装可能看起来是一项艰巨的任务。在 Ubuntu 上安装 Docker 有两种推荐的方法: 从 Ubuntu 的仓库安装 D...【详细内容】
2024-01-04  Search: Docker  点击:(142)  评论:(0)  加入收藏
七个杀手级Docker命令
Docker是一个容器化平台,通过操作系统级别的虚拟化技术,实现软件的打包和容器化运行。借助Docker,开发人员能够将应用程序以容器的形式进行部署,但在此之前需要构建Docker镜像。...【详细内容】
2023-12-22  Search: Docker  点击:(178)  评论:(0)  加入收藏
Docker容器如何打包应用程序的代码和依赖项?
Docker容器通过将应用程序的代码和所有依赖项打包到一个独立的软件包中,实现了应用程序的快速部署和移植。下面是Docker容器实现这一目标的步骤:打包应用程序:使用Docker工具将...【详细内容】
2023-12-20  Search: Docker  点击:(148)  评论:(0)  加入收藏
▌简易百科推荐
Docker仓库管理实战:公共与私有仓库
核心内容 Docker公共仓库与私有仓库的概述。 公共仓库(Docker hub)登入与登出命令使用详解。 如何搭建一个简单的私有仓库。 如何在搭建的私有仓库内,实现私有镜像的查询、上传...【详细内容】
2024-05-15  凡夫编程  微信公众号  Tags:Docker   点击:(0)  评论:(0)  加入收藏
Docker从入门到精通:Docker 容器数据卷详解
前言在 Docker 中,数据卷(Volume)是一种可用于持久化存储数据的重要机制。它允许容器与宿主机之间或者容器之间共享数据,并且能够保留数据,即使容器被删除也不会丢失。本文将介绍...【详细内容】
2024-04-26  ceshiren    Tags:Docker   点击:(7)  评论:(0)  加入收藏
Docker 和传统虚拟机有什么区别?
我有一个程序员朋友,他每年情人节都要送女朋友一台服务器。他说:“谁不想在过节当天收到一台 4核8g 的服务器呢?”“万一对方不要,我还能留着自己用。” 给他一次过节的机会,他能...【详细内容】
2024-03-26  小白debug  微信公众号  Tags:Docker   点击:(19)  评论:(0)  加入收藏
掌握Docker网络驱动程序:优化容器通信
Docker为在容器内包装、交付和运行应用程序提供了一个强大的平台,从而彻底改变了容器化。网络是容器化的重要组成部分,Docker提供了各种网络驱动程序来支持容器之间的通信以...【详细内容】
2024-03-22    51CTO  Tags:Docker   点击:(20)  评论:(0)  加入收藏
Containerd容器管理
Nginx 指定容器名称 使用 ctr container create 命令创建容器后,容器并没有处于运行状态,其只是一个静态的容器。容器基本操作容器基本操作主要是 ctr image 命令,查看命令帮...【详细内容】
2024-03-20  云原生运维圈  微信公众号  Tags:容器   点击:(29)  评论:(0)  加入收藏
如何基于Docker镜像逆向生成Dockerfile
引言你是否曾经遇到过一个想要使用的 Docker 镜像,但却无法修改以适应你的特定需求?或者你可能发现了一个喜欢的 Docker 镜像,但想要了解它是如何构建的?在这两种情况下,将 Docke...【详细内容】
2024-03-07  云原生运维圈  微信公众号  Tags:Docker   点击:(50)  评论:(0)  加入收藏
Kubernetes是什么?主要特点是什么?
Kubernetes是什么?Kubernetes,也称为K8s,是一个开源的容器编排系统,由Google首次开发和维护。它允许容器化的应用程序在集群中自动部署、扩展和管理。Kubernetes提供了一种容器...【详细内容】
2024-02-01    简易百科  Tags:Kubernetes   点击:(214)  评论:(0)  加入收藏
我们一起聊聊容器资源自愈
在企业实际在使用容器这类资源的时候,除了技术本身,要考虑的其他问题也会很多。企业管理的容器有千千万万,出于效率考虑,对于有特殊需求的容器如何进行批量创建和管理呢,这就需要...【详细内容】
2024-01-30  匠心独运维妙维效  微信公众号  Tags:容器   点击:(63)  评论:(0)  加入收藏
Docker与Docker Compose入门:释放你应用部署的威力
今天给大家介绍一项强大而有趣的技能,那就是使用 Docker 和 Docker Compose 来释放你的应用部署的威力!无论你是一名开发人员还是系统管理员,掌握这个技能都将为你的工作带来巨...【详细内容】
2024-01-17  waynblog  微信公众号  Tags:Docker   点击:(87)  评论:(0)  加入收藏
Docker镜像与容器的交互及在容器内部执行代码的原理与实践
Docker作为一种流行的容器技术,已经成为现代应用程序开发和部署的重要工具。在Docker中,镜像是构建和运行容器的基础,而容器则是基于镜像创建的可执行实例。Docker镜像与容器的...【详细内容】
2024-01-10  编程技术汇  今日头条  Tags:Docker   点击:(116)  评论:(0)  加入收藏
站内最新
站内热门
站内头条