Docker Hub的官方网站称,它是世界上最容易创建、交付以及管理容器应用程序的方法。此外,它也是最大的社区和容器图像库。
Docker Hub让你可以自由地浏览来自开源项目、软件供应商和社区的大约100000个容器镜像。一个很大的数字,对吗?
通过这篇文章,我们将帮助你熟悉Docker Hub。但让我们先告诉你容器是什么意思。
什么是容器?
容器只是一个标准的软件单元,它将代码和所有的依赖关系捆绑在一起,使应用程序能够正常工作。此外,一个容器化的应用程序可以很容易地在不同的环境中运行。
当我们谈论Docker容器镜像时,它只是一个轻量级的可执行包,由各种元素组成,如,运行时间、代码、系统库、系统工具和其他突出的设置。
通常情况下,容器镜像在运行时成为容器。而在Docker中,图像在Docker引擎上运行时成为容器。
无论基础设施如何,容器化软件的运行方式总是一样的。有趣的是,容器化软件既可用于基于Windows的应用程序,也可用于Linux。
容器可以将软件与周围环境隔离。此外,它们确保尽管存在某些差异,如在开发和暂存的情况下,工作是统一的。
现在,你必须了解Docker引擎的概念。
什么是Docker引擎?
Docker引擎是一种容器化技术,用于构建和容器化你的应用程序。它是一种客户端-服务器技术,通过使用Docker的服务和组件来运行和构建。
有很多原因使Docker引擎成为用户的热门选择,具体如下。
- 保证安全
Docker引擎是以强大的安全性构建的。通过Docker内容信任和FIPS 140-2验证,Docker引擎用户可以在特定环境中运行许多容器化应用。
- 掌握创新
Docker允许开发者和操作者对他们的想法进行创新。Docker引擎只是Docker企业基金会的一个具体基础。
- 自由选择
就Docker引擎而言,它支持各种品种的应用,从传统的到云原生的,从单体的到12因素的。此外,它还适用于多种操作系统。
此外,它还被验证可以与Kubernetes CRI一起工作。
- 集成BuildKit
BuildKit是一个开源的工具。它从dockerfile中获取指令集,并帮助构建特定的docker镜像。
构建这种特定的Docker镜像是一项耗时的任务。因此,BuildKit有助于使其更快、更便携,以及更精确地工作。
- 由Containerd提供动力
Docker引擎建立在开源的容器运行时间上,这是一个由云原生计算基金会开发的项目。
Containerd有助于实现Kubernetes CRI(容器运行时接口),并在各种企业和公共云中被广泛采用。
- Docker CLI
Docker CLI是一种简单而舒适的方式来与Docker容器进行接口或互动。
它是一个强大的媒介,让你通过执行各种命令来管理容器实例。
Docker容器简介
Docker是在2013年推出的。该技术是完全独特的,因为它了解系统操作员和开发人员的要求,以便将应用程序的依赖性从基础设施中分离出来。此外,它还利用了围绕容器的现有计算概念。
由于Docker容器在Linux世界的巨大成功,Docker与微软进行了合作。这次合作的结果是将Docker容器及其功能带到了Windows服务器上。
以下是Docker容器的关键功能列表。
- 轻量级:由于容器共享设备的操作系统内核,因此每个应用不需要任何操作系统。此外,它有助于推动更高的服务效率,减少许可和服务器成本。
- 安全: 应用程序在容器中是非常安全和可靠的。Docker也提供了一个强大的默认隔离能力。
- 可移植性:Docker为容器设置了一些默认的标准,以保证其可移植性。在任何地方和任何地方运输容器都变得很容易。
虚拟机
现在你已经对Docker容器和Docker引擎有了很好的了解,让我们继续往前走,看看虚拟机。
虚拟机只是物理硬件的一种抽象,它把一台服务器变成了多台服务器。每个虚拟机都包含了应用程序的整个副本、操作系统、二进制文件或库。这就占用了大量的存储空间。
那么,我们为什么要向你介绍虚拟机呢?
因为当虚拟机和容器结合在一起时,它为应用程序的管理提供了很大的灵活性。
为什么选择Docker Hub?
通过Docker Hub,你可以轻松地交付任何应用程序,并使你的应用程序可以被你的团队访问,也可以推送图像。此外,创建和管理用户并授予他们对存储库的访问权也相当容易。
它是世界上最大的容器图像库,由几个内容源组成,如开源项目、容器社区开发者和ISV(独立软件供应商)。所有这些内容来源都有助于在容器中构建和分发代码。
Docker集线器充满了大量的功能。让我们来分析一下它们。
Docker Hub的特点
Docker Hub是一个由Docker提供的托管仓库服务。它通常有助于寻找和分享容器镜像。
你应该知道Docker Hub的某些突出功能,具体如下。
- 自动构建 :它提供了从Bitbucket和GitHub自动构建大量容器镜像的功能。你可以轻松地将它们推送到Docker Hub。
- 私人存储库:在私有仓库的帮助下,你可以自由地推拉你想要的容器镜像。
- 官方图像 :拉取和使用Docker提供的一些高质量的容器镜像是可行的。
- 便于你的团队:对于组织来说,管理对私有仓库的访问变得非常容易。
- Webhooks:一旦你推送到资源库,就会触发行动,以便将Docker Hub与其他服务整合。
- 发布者图像:你可以自由地使用由外部供应商提供的高质量容器镜像。即使是经过认证的镜像也能得到保证的兼容性和对Docker企业的支持。
Docker Hub无疑是希望在容器中构建和发布代码的开发者、软件供应商的中心。
下面是Docker Hub如何为不同类别的用户提供便利的情况。
- 对于开发者: 项目可以被安全地存储和共享,因此,你可以看到在容器社区内完成的工作。
- 对于企业来说: 从经过验证的ISV那里获得有保证的合作支持的认证容器。
- 对于团队:用户可以禁止向某些用户或团队提供某些内容,他们想从中隐藏特定的信息或数据。
- 对于ISVs:有了docker pull命令,就有可能为客户和用户提供软件。
如何创建你的第一个资源库?
按照以下步骤,使用Docker Hub创建和设置一个软件库。
- 使用有效的证书登录到你的Docker Hub账户。如果你没有Docker Hub账户,你需要注册并创建一个新账户。
- 登录后,点击主页上的创建资源库选项。
- 为新的资源库指定一个名称。
- 选择版本库的可见性为私有或公共。
就这样了。你就完成了!
此外,如果你想通过构建设置整合GitHub和BitBucket等源代码库,你也可以这么做。
现在,Docker Hub提供了一个免费的私有资源库。要获得更多这样的仓库,你需要选择其付费计划。
要打开Docker桌面工具并登录,你需要在终端运行以下命令。
docker登录
使用Docker Hub进行的各种操作
-
探索图像
要在Docker Hub中搜索Docker镜像和存储库,你所需要做的就是在Docker Hub中搜索。你也可以使用命令行工具,运行下面的命令来搜索图像。
docker search mysql
-
下载一个镜像
要下载一个图像,你需要使用下面显示的docker pull命令。
# docker pull mysql
该命令有助于将所选镜像自动更新为最新版本。当你分析这些命令的输出时,存在几个MySQL的图像。你可以选择你想要的任何图像。
为了选择一个特定的镜像,比方说,你想拉动bitnami/mysql镜像,那么你需要使用以下命令。
# docker pull bitnami/mysql
-
创建一个镜像
为了构建Docker镜像,你必须使用Dockerfile。Dockerfile只是一本指导Docker以某种方式组装的手册。
Docker会读取Dockerfile中提到的指令,并自动创建Docker镜像。当我们谈论Docker镜像时,它们只是分层的文件系统。这些镜像由许多只读层组成。每一个这样的层都是有用的,以便预知Docker文件的指令。现在,要创建一个Docker镜像,请遵循下面提到的步骤。
1.首先,通过使用下面提到的命令创建一个Dockerfile。
# sudo vim Dockerfile
注意:文件名必须是Dockerfile,大写的D。
2.现在你已经创建了一个镜像,是时候运行它了。如何做到这一点呢?嗯,通过这个简单的命令,你可以测试你的镜像。
docker run abcdefi08527/first-repo
3.执行过程一开始,这个命令就要求先在设备上安装MySQL。进行必要的更新,你就可以开始了。
-
推送一个映像
在你成功创建一个镜像后,使用这个命令将其推送到Docker Hub。
docker push abcdefi08527/first-repo
接下来,你一定知道什么是Docker认证的镜像。
那么,Docker认证的镜像是由供应商或贡献者推送的。如果内容符合Docker Hub提供的规则、法律和标准,那么这个镜像才会被认证。
此外,Docker Hub提供了 inspectDockerImage工具。它可以协助供应商自行认证插件以及镜像。
如果你想发布经Docker认证的镜像,你必须对镜像和插件进行认证和测试。使用expectDockerImage工具来做这件事。
一言以蔽之。
- Docker镜像是高度可移植的
- 它们是非常轻的
- 你可以轻松地分享应用程序,因为将镜像推送到存储库,然后与你的团队伙伴分享它们是很简单的。
- Docker镜像的安全性很高,因为它们带有哈希值,可以通过数字签名来防止任何形式的未经授权的访问。
总结
Docker Hub是迄今为止管理、创建和交付团队的容器应用的最好和最简单的方法。它是世界上最大的容器镜像社区,是容器社区开发者、独立软件供应商和开源项目的中心枢纽。
本文着重于传授有关Docker Hub提供的各种功能、其用途和优势的知识。此外,你还可以深入了解Docker引擎、容器、容器镜像、虚拟机和存储库。