先决条件
- 完成第二部分的容器化应用程序。
介绍
先前,您已经在第二部分中构建了一个容器化的应用程序,并可能在第三部分的Kubernetes上或在第三部分的Swarm中运行它。这要归功于Docker Desktop。 开发容器化应用程序的最后一步是在Docker Hub等注册中心上共享镜像,以便可以轻松下载它们并在任何目标群集上运行它们。
设置您的Docker Hub帐户
如果您还没有Docker ID,请按照以下步骤进行设置。 这将允许您在Docker Hub上共享镜像。
访问Docker Hub注册页面[https://hub.docker.com/signup](https://hub.docker.com/signup)。
填写表格并提交以创建您的Docker ID。
单击工具栏或系统托盘中的Docker图标,然后单击Sign In / Create Docker ID。 填写您新的Docker ID和密码。 如果一切正常,您的Docker ID将显示在Docker Desktop下拉列表中,代替您刚使用的“Sign In”选项。
您可以通过在命令行中输入
docker login
来执行相同的操作。
创建并推送到Docker Hub仓库
至此,您已经设置了Docker Hub帐户并将其连接到Docker Desktop。 现在,让我们进行第一个repo,并在那里共享我们的公告板应用程序。
单击菜单栏中的Docker图标,然后导航到Repositories-> Create ...。 您将进入Docker Hub页面来创建一个新的仓库。
填写仓库名称为
bulletinboard
。 现在暂时保留所有其他选项,然后单击底部的Create。现在我们已经准备好在Docker Hub上共享镜像,但是我们首先要做的是:必须正确命名镜像才能在Docker Hub上共享。 具体而言,镜像必须像
<Docker Hub ID>/<Repository Name>:<tag>
这样命名。 我们可以像这样重新标记我们的bulletinboard:1.0
镜像(当然,请用您的Docker ID替换gordon
):docker image tag bulletinboard:1.0 gordon/bulletinboard:1.0
最后,将镜像推送到Docker Hub:
docker image push gordon/bulletinboard:1.0
在Docker Hub中访问您的仓库,您将在此处看到新镜像。 请记住,默认情况下,Docker Hub仓库是公共的。
**有问题吗?**请记住,您必须通过Docker Desktop或命令行登录Docker Hub,并且还必须按照上述步骤正确命名镜像。 如果该推送似乎有效,但您在Docker Hub中看不到它,请在几分钟后刷新浏览器,然后再次检查。
结论
现在,您的镜像已在Docker Hub上可用,您将可以在任何地方运行它。如果您尝试在尚未安装的新群集上使用它,则Docker将自动尝试从Docker Hub下载它。通过以这种方式移动镜像,我们不再需要在要运行软件的机器上安装Docker和编排器以外的任何依赖项;容器化应用程序的依赖关系已完全封装并隔离在我们的镜像中,我们可以按上述方式通过Docker Hub进行共享。
需要记住的另一件事:目前,我们仅将您的镜像推送到Docker Hub;您的Dockerfile,Kube YAML和堆栈文件呢?关键的最佳实践是将它们加入到版本控制中,或者与应用程序的源代码一起保存,并在Docker Hub仓库描述中添加链接或注释,以指示可以在何处找到这些文件,不仅保存镜像如何构建的记录,也但如何作为完整应用程序运行的意图。