Dockerhub或官方Docker注册表包含许多预先构建的Docker映像以及其他用户的自定义映像,如果这些映像已公开,则可以将其拉到系统中。为了将映像拉入或推送到Docker注册表,您需要首先在Dockerhub中拥有一个帐户。
要在dockerhub中创建一个帐户和一个存储库,您可以按照以下步骤操作-
访问docker hub(链接-https://hub.docker.com/ )。
创建一个帐户,或者如果已经拥有一个帐户,请使用您的帐户详细信息登录。
登录后,在欢迎页面上单击创建存储库。
填写详细信息,例如存储库名称,可见性(公共或私有)等。
首先让我们看看如何从dockerhub中提取现有映像。
您可以使用以下命令来这样做-
sudo docker run −it ubuntu
这将检查系统中是否已存在ubuntu映像。如果没有,它将开始从dockerhub中拉出。
您也可以使用以下命令简单地拉出图像。
sudo docker pull ubuntu
现在,我们将了解如何在dockerhub上发布您自己的自定义映像。在dockerhub上创建帐户并验证您的电子邮件ID后,您都可以设置发布第一张图像。
使用上述步骤在dockerhub中创建存储库后,打开终端并运行以下命令以登录自己。
sudo docker login −−username=<USERNAME> −−email=<EMAIL ID>
在上述命令中使用您的用户名和电子邮件ID,运行命令,它将提示您输入正确的密码。输入密码后,运行以下命令以检查本地系统中的图像列表
sudo docker images
您可以使用以下命令标记要发布的图像。
sudo docker tag <image−id> <user−name>/<image−name>:<tag>
您应该使用这样的标签名称,它可以正确描述您的图像。您可以使用图像的版本,也可以仅使用适当的项目名称。
之后,您可以使用以下命令将映像推送到Docker注册表-
sudo push <user−name>/image−name
之后,您的映像将在dockerhub上发布,并且如果它已公开,则dockerhub上的任何人都可以拉出它并相应地使用它。
要将图像拉回并运行,可以使用以下命令-
sudo docker pull <user−name>/<image−name>:<tag> sudo docker run −it <user−name>/<image−name>:<tag>
但是,如果您的目标只是保留备份或将映像存储在某个位置,以便能够将其还原以供将来使用,则应避免将映像发布到dockerhub上。其背后的原因是,如果您想对图像进行频繁更改并多次发布然后将其推回,则将消耗大量带宽,并且如果您正在处理多个图像,则将花费大量资源也一样 一种可能的解决方案是仅将图像另存为tar文件在本地系统中,并在需要时将其重新加载。
要将图像的本地副本另存为tar文件,可以使用以下命令。
sudo docker save image−name > tar−file−name.tar
要将图像加载回去,您可以使用-
sudo docker load −−input tar−file−name.tar
总而言之,在本文中,我们已经看到了如何在Docker的官方注册表中创建一个名为dockerhub的帐户,在其中创建存储库,在其中推送自定义的docker映像,然后将其拉回并运行它。如果您想通过将图像保存在tar文件中并重新加载以供进一步使用的方式进行备份和还原,我们还看到了另一种有效的替代方法。
为docker映像创建备份是非常必要的,因为万一发生意外,您不想丢失所有工作并完全创建该映像的所有内容而又无法访问以前的dockerfile是一项非常繁重的任务。