发布Docker镜像到Dockhub容器仓库
admin
2021-06-03[YoYoMooc]发布Docker镜像到Dockhub仓库
目录导航:
推荐内容:
我们已经在本地建立了一个镜像,并且这个镜像已经通过了我们的测试,现在我们就可以将它发布到我们的服务器上,而要发布到服务器上创建容器就需要一个存储这些镜像的地方。
而Docker公司就提供了一个存放公共镜像存储的地方就是DockerHub。当然你如果要存放私有的镜像,则需要私有仓库,DockerHub默认提供了一个私有仓库,你如果需要更多的私有仓库则需要付费。
注意,请自行前往
https://hub.docker.com/
注册自己的账户。
完成注册后你会得到一个唯一的用户名称,如ltm0203
,参考下图:
为需要发布的项目打上标记
在本文中我会打上一个ltm0203/exampleApp3000
的镜像标记,将它发布到Docker Hub中。你可以自由选择你是发布为私有仓库还是公有仓库。
为了对比方便,我们再制作一个未修改的镜像一共发布到Docker仓库中,请注入以下命令:
docker tag yoyomooc/exampleapp:latest ltm0203/exampleapp:unchange
可以通过docker image ls
,验证生成的镜像,我只选择了需要发布的镜像,你的显示出的镜像会比这个多一些。
REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
---|---|---|---|---|
ltm0203/exampleapp | changed | 172ebd0eedc7 | 6 hours ago | 285MB |
ltm0203/exampleapp | unchange | a49000cfa42e | 23 hours ago | 234MB |
现在打开终端控制台,注入以下命令:
docker login -u <用户名> -p <密码>
我们需要在控制台中登录你DockerHub的用户名和密码,所以请将<>中的字符替换为你自己注册的用户名和密码。
登录成功后会返回,登录成功的英文内容。
推送镜像到仓库
现在我们就可以通过命令推送到DockerHub仓库中,输入以下命令:
docker push ltm0203/exampleapp:changed
docker push ltm0203/exampleapp:unchange
推送成功后,返回如上图 的结果。
同时我们可以看到在推送ltm0203/exampleapp:unchange
镜像的时候,返回的文字中除了有Pushed以外还有 Layer already exists
,提示已经存在,这说明docker会检查当前仓库中是否有相同的内容,如果有的话会引用它们。
The push refers to repository [docker.io/ltm0203/exampleapp]
b719af2a02d9: Layer already xists 4de7fcec79e4: Layer already exists b4f12c28bcb9: Layer already exists 4be6dadfbd3f: Layer already exists b50dd2025901: Layer already exists c3a984abe8a8: Layer already exists unchange: digest: sha256:c995199b726c31b1eed0966fee9953b8c7f64d37a834935ee7a401b14062ba19 size: 1586
你可以登录https://hub.docker.com/repository/docker/ltm0203/exampleapp
地址进行验证,得到如下的结果,镜像已经成功推送。
在之前的章节中,我们提到过使用docker pull
命令的时候,会默认去拉取latest
的内容,而当前我们的仓库中不存在latest
标记,所以当我们去使用如下命令:
docker pull ltm0203/exampleapp
则会返回以下消息:
Using default tag: latest
Error response from daemon: manifest for ltm0203/exampleapp:latest not found: manifest unknown: manifest unknown
并不存在latest
标记的ltm0203/exampleapp
镜像,所以为了避免这种尴尬,我们需要推送一个ltm0203/exampleapp:latest
标记的镜像到DockerHub中。
请输入以下命令:
docker tag yoyomooc/exampleapp:latest ltm0203/exampleapp:latest
docker push ltm0203/exampleapp:latest
注销
当我们使用完成后登陆docker的用户会常驻在我们的系统中,所以我们需要使用
docker logout
注销我们当前的登陆信息。
以上便是docker的基础操作流程了。如果你对这些命令还不熟悉,还请多加练习。掌握他们。