如何在 Docker Hub 和私有镜像仓库之间切换

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Docker 是一个广受欢迎的容器化平台,它允许开发者以一致且可重复的方式打包和部署应用程序。Docker 生态系统的关键组件之一是 Docker 镜像仓库,它用作存储和分发 Docker 镜像的存储库。在本教程中,你将学习如何在公共 Docker Hub 和私有 Docker 镜像仓库之间进行切换,以确保你的 Docker 部署既安全又灵活。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/ImageOperationsGroup -.-> docker/push("Push Image to Repository") docker/ImageOperationsGroup -.-> docker/search("Search Images in Repository") docker/SystemManagementGroup -.-> docker/login("Log into Docker Registry") docker/SystemManagementGroup -.-> docker/logout("Log out from Docker Registry") subgraph Lab Skills docker/pull -.-> lab-415116{{"如何在 Docker Hub 和私有镜像仓库之间切换"}} docker/push -.-> lab-415116{{"如何在 Docker Hub 和私有镜像仓库之间切换"}} docker/search -.-> lab-415116{{"如何在 Docker Hub 和私有镜像仓库之间切换"}} docker/login -.-> lab-415116{{"如何在 Docker Hub 和私有镜像仓库之间切换"}} docker/logout -.-> lab-415116{{"如何在 Docker Hub 和私有镜像仓库之间切换"}} end

Docker 镜像仓库简介

Docker 镜像仓库是存储和分发 Docker 镜像的核心枢纽。它们是 Docker 生态系统的支柱,使开发者和组织能够管理和共享他们的容器化应用程序。在本节中,我们将探讨 Docker 镜像仓库的基本原理、其用途以及可用的不同类型的镜像仓库。

什么是 Docker 镜像仓库?

Docker 镜像仓库是一个服务器端应用程序,用于存储和分发 Docker 镜像。它充当一个存储库,Docker 镜像在用户和团队之间进行推送、拉取和共享。Docker 镜像仓库支持在从开发到生产的不同环境中分发和部署容器化应用程序。

Docker 镜像仓库的类型

Docker 镜像仓库主要有两种类型:

  1. 公共镜像仓库:像 Docker Hub 这样的公共镜像仓库,互联网上的任何人都可以访问。它们提供了大量预先构建的 Docker 镜像,开发者可以将其用作自己应用程序的起点。

  2. 私有镜像仓库:私有镜像仓库由各个组织或团队拥有和管理。它们允许你托管自己的自定义 Docker 镜像,从而对你应用程序的工件有更大的控制权和更高的安全性。

使用 Docker 镜像仓库的好处

Docker 镜像仓库为开发者和组织带来了诸多好处:

  1. 集中式镜像存储:Docker 镜像仓库提供了一个集中的位置来存储和管理 Docker 镜像,使共享和分发你的应用程序变得更加容易。

  2. 版本控制和标签:镜像仓库允许你为 Docker 镜像添加标签和版本,从而更好地组织和跟踪应用程序的演变。

  3. 可扩展性和高可用性:强大的 Docker 镜像仓库可以处理大量的镜像拉取和推送操作,确保你的应用程序能够扩展并保持高可用性。

  4. 安全性和访问控制:私有镜像仓库提供了增强的安全功能,如访问控制和身份验证,以保护组织的敏感容器镜像。

  5. 自动化构建和部署:Docker 镜像仓库可以与持续集成(CI)和持续部署(CD)管道集成,简化应用程序的构建和部署流程。

通过了解 Docker 镜像仓库的基本原理,你可以有效地管理和分发你的容器化应用程序,确保在不同环境中进行一致且可靠的部署。

访问 Docker Hub

Docker Hub 是全球最大的 Docker 镜像公共仓库,提供大量预先构建的镜像,开发者可以将其用作自己应用程序的起点。在本节中,我们将探讨如何访问 Docker Hub 并与之交互。

注册 Docker Hub 账户

要访问 Docker Hub,你需要创建一个账户。你可以通过访问 Docker Hub 网站 并点击“注册”按钮来注册一个免费的 Docker Hub 账户。

登录 Docker Hub

拥有 Docker Hub 账户后,你可以使用 Docker CLI 登录到仓库。打开终端并运行以下命令:

docker login

这将提示你输入 Docker Hub 用户名和密码。认证成功后,你就可以开始与 Docker Hub 进行交互了。

在 Docker Hub 上搜索 Docker 镜像

要在 Docker Hub 上搜索 Docker 镜像,你可以使用 docker search 命令。例如,要搜索官方的 Ubuntu 镜像,运行:

docker search ubuntu

这将显示一系列可用的基于 Ubuntu 的镜像,包括它们的描述、星标数量(受欢迎程度的一种衡量标准)以及拉取次数。

拉取 Docker 镜像

要从 Docker Hub 拉取 Docker 镜像,使用 docker pull 命令,后跟镜像名称。例如,要拉取最新的 Ubuntu 镜像,运行:

docker pull ubuntu:latest

这将从 Docker Hub 下载指定的镜像并存储在你的本地机器上,供你在 Docker 容器中使用。

推送 Docker 镜像

如果你创建了自己的 Docker 镜像,你可以将它们推送到 Docker Hub 与他人共享。首先,你需要使用适当的 Docker Hub 仓库和用户名标记你的本地镜像。例如:

docker tag my-image username/my-image:latest

然后,你可以使用 docker push 命令将镜像推送到 Docker Hub:

docker push username/my-image:latest

通过掌握访问和与 Docker Hub 交互的基础知识,你可以利用大量预先构建的 Docker 镜像生态系统,并有效地管理自己容器化应用程序的分发。

配置私有镜像仓库

虽然 Docker Hub 提供了便捷的公共镜像仓库,但在某些情况下,你可能需要设置一个私有镜像仓库来托管组织的自定义 Docker 镜像。在本节中,我们将指导你完成配置私有 Docker 镜像仓库的过程。

部署私有镜像仓库

要部署私有 Docker 镜像仓库,你可以使用官方的 Docker Registry 镜像。首先,从 Docker Hub 拉取镜像仓库镜像:

docker pull registry:2

然后,使用以下命令运行镜像仓库容器:

docker run -d --name registry -p 5000:5000 registry:2

这将在你的本地机器上启动一个私有 Docker 镜像仓库,监听端口 5000。

将镜像推送到私有镜像仓库

要将你的 Docker 镜像推送到私有镜像仓库,你需要使用适当的仓库 URL 对其进行标记。假设你的私有镜像仓库在 localhost:5000 上运行,你可以这样标记一个镜像:

docker tag my-image localhost:5000/my-image:latest

然后,将镜像推送到私有镜像仓库:

docker push localhost:5000/my-image:latest

从私有镜像仓库拉取镜像

要从你的私有镜像仓库拉取镜像,使用以下命令:

docker pull localhost:5000/my-image:latest

保护私有镜像仓库

默认情况下,私有镜像仓库是不安全的,这意味着任何人都可以访问并与之交互。为了增强私有镜像仓库的安全性,你可以将其配置为使用 HTTPS 并实施认证。

启用 HTTPS

要为你的私有镜像仓库启用 HTTPS,你需要提供一个有效的 SSL/TLS 证书。你可以使用自签名证书,也可以从受信任的证书颁发机构 (CA) 获取一个。

一旦你有了证书和密钥文件,你可以使用以下命令运行镜像仓库容器:

docker run -d --name registry \
  -p 5000:5000 \
  -v /path/to/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  registry:2

这将启动启用了 HTTPS 的镜像仓库容器。

实施认证

要为你的私有镜像仓库添加认证,你可以使用 Docker Registry 提供的内置基本认证机制。这涉及创建一个密码文件并使用适当的环境变量运行镜像仓库容器。

通过配置私有 Docker 镜像仓库,你可以对你组织的容器镜像保持更大的控制权,确保应用程序的安全性和完整性。

总结

通过学习本教程,你将掌握在 Docker Hub 和私有 Docker 镜像仓库之间无缝切换的知识。这将使你能够充分利用公共和私有镜像仓库的优势,确保你的 Docker 部署既安全、可扩展,又能满足你的特定需求。