练习 - 将微服务映像推送到 Docker Hub
为了使 Kubernetes 能够创建容器映像,它需要一个位置来保存映像。 Docker Hub 是上传 Docker 映像的中心位置。 许多产品(包括 Kubernetes)都可以基于 Docker Hub 中的映像创建容器。
开放开发环境
可以选择使用托管练习的 GitHub codespace,或者在 Visual Studio Code 中本地完成练习。
要使用 codespace,请使用此 Codespace 创建链接创建预配置的 GitHub Codespace。
GitHub 创建和配置 codespace 的过程需要几分钟时间。 完成后,用于本模块的其余部分的代码将位于“/dotnet-kubernetes”目录中。
要使用 Visual Studio Code,请将 https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative 存储库克隆到本地计算机。 然后:
- 安装所有系统要求以在 Visual Studio Code 中运行开发容器。
- 确保 Docker 正在运行。
- 在新的 Visual Studio Code 窗口中,打开克隆存储库的文件夹
- 按 Ctrl+Shift+P,打开命令面板。
- 搜索:>开发容器:在容器中重新生成和重新打开
- 从下拉列表中选择“eShopLite - dotnet-kubernetes”。 Visual Studio Code 将在本地创建你的开发容器。
通过在 codespace 中创建容器来验证 Docker 映像
Contoso Shop 项目中有 2 个容器。 在将映像推送到 Docker Hub 之前,我们先使用它们在 codespace 创建容器。 创建并运行容器后,我们将能够浏览 Contoso 公司网站并验证微服务是否正常运行。
按照以下步骤在 codespace 中创建并运行 Docker 容器。
切换到“终端”选项卡,然后运行以下命令来转到代码根目录:
cd dotnet-kubernetes
运行以下命令以生成容器:
dotnet publish /p:PublishProfile=DefaultContainer
生成容器可能需要一段时间。
运行以下命令以运行应用并附加容器:
docker compose up
为测试前端服务,请切换到“端口”选项卡,然后在“前端”端口的本地地址右侧,选择地球图标。 随即浏览器显示主页。
选择“产品”。 该目录显示 Contoso 的商品。
关闭网站,返回到“终端”选项卡,然后按 CTRL + C。Docker Compose 停止容器。
登录到 Docker Hub
将映像上传到 Docker Hub 的下一步是登录 Docker Hub。 在命令提示符处,输入下列内容:
docker login
重要
使用你在创建 Docker 帐户时提供的相同用户名和密码。 如果需要,可以访问 Docker Hub 网站来重置密码。
将映像上传到 Docker Hub
输入以下代码以重新标记或重命名在 Docker 用户名下创建的 Docker 映像。
docker tag store [YOUR DOCKER USER NAME]/storeimage docker tag products [YOUR DOCKER USER NAME]/productservice
最后,将 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 的微服务部署。