练习 - 将微服务映像推送到 Docker Hub

已完成

为了使 Kubernetes 能够创建容器映像,它需要一个位置来保存映像。 Docker Hub 是上传 Docker 映像的中心位置。 许多产品(包括 Kubernetes)都可以基于 Docker Hub 中的映像创建容器。

注意

你将在预安装了 Docker.NET SDK 的 GitHub Codespace 中完成此练习。 当你在自己的开发环境中使用这些技术时,请确保已安装这些先决条件。

开放开发环境

可以选择使用托管练习的 GitHub codespace,或者在 Visual Studio Code 中本地完成练习。

要使用 codespace,请使用此 Codespace 创建链接创建预配置的 GitHub Codespace

GitHub 创建和配置 codespace 的过程需要几分钟时间。 完成后,用于本模块的其余部分的代码将位于“/dotnet-kubernetes”目录中。

要使用 Visual Studio Code,请将 https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative 存储库克隆到本地计算机。 然后:

  1. 安装所有系统要求以在 Visual Studio Code 中运行开发容器。
  2. 确保 Docker 正在运行。
  3. 在新的 Visual Studio Code 窗口中,打开克隆存储库的文件夹
  4. Ctrl+Shift+P,打开命令面板。
  5. 搜索:>开发容器:在容器中重新生成和重新打开
  6. 从下拉列表中选择“eShopLite - dotnet-kubernetes”。 Visual Studio Code 将在本地创建你的开发容器。

通过在 codespace 中创建容器来验证 Docker 映像

Contoso Shop 项目中有 2 个容器。 在将映像推送到 Docker Hub 之前,我们先使用它们在 codespace 创建容器。 创建并运行容器后,我们将能够浏览 Contoso 公司网站并验证微服务是否正常运行。

按照以下步骤在 codespace 中创建并运行 Docker 容器。

  1. 切换到“终端”选项卡,然后运行以下命令来转到代码根目录:

    cd dotnet-kubernetes
    
  2. 运行以下命令以生成容器:

    dotnet publish /p:PublishProfile=DefaultContainer
    

    生成容器可能需要一段时间。

  3. 运行以下命令以运行应用并附加容器:

    docker compose up
    
  4. 为测试前端服务,请切换到“端口”选项卡,然后在“前端”端口的本地地址右侧,选择地球图标。 随即浏览器显示主页。

  5. 选择“产品”。 该目录显示 Contoso 的商品。

  6. 关闭网站,返回到“终端”选项卡,然后按 CTRL + C。Docker Compose 停止容器。

登录到 Docker Hub

将映像上传到 Docker Hub 的下一步是登录 Docker Hub。 在命令提示符处,输入下列内容:

docker login

重要

使用你在创建 Docker 帐户时提供的相同用户名和密码。 如果需要,可以访问 Docker Hub 网站来重置密码。

将映像上传到 Docker Hub

  1. 输入以下代码以重新标记或重命名在 Docker 用户名下创建的 Docker 映像。

    docker tag store [YOUR DOCKER USER NAME]/storeimage
    docker tag products [YOUR DOCKER USER NAME]/productservice
    
  2. 最后,将 Docker 映像上传或推送到 Docker Hub。

    docker push [YOUR DOCKER USER NAME]/storeimage
    docker push [YOUR DOCKER USER NAME]/productservice
    

    如果收到身份验证错误,则可以运行 docker logout 后再运行 docker login 以重新进行身份验证。

在本练习中,你使用了 Dockerfiles 和 Docker Compose 创建两个 Docker 映像和容器,并将这些映像推送到 Docker Hub。

现在,你可以使用 Kubernetes 来管理 Contoso 的微服务部署。