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


【Docker仓库管理实战:公共与私有仓库】如果你想通过命令行提供用户名和密码,可以使用 -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


推荐阅读