为镜像打标记
使用docker tag 命令为镜像打上标记,比如为网易蜂巢(已改名网易云)镜像仓库推送镜像,首先需要为镜像做好标记;
- 目标镜像
docker images | grep nginx
ubuntu-nginx latest cd34135ed904 About an hour ago 222 MB
其中 latest是镜像的标签,cd34135ed904是镜像的ID。
- 为镜像做标记
docker tag cd34135ed904 hub.c.163.com/dongnan/ubuntu-nginx:0315
你会发现这两个镜像对应同一个ID,所以它们是相同的(只占一份存储空间)。
docker images | grep nginx
hub.c.163.com/dongnan/ubuntu-nginx 0315 cd34135ed904 About an hour ago 222 MB
ubuntu-nginx latest cd34135ed904 About an hour ago 222 MB
- 标记格式
hub.c.163.com/dongnan/ubuntu-nginx:0315 镜像是按照网易蜂巢的要求(不同服务商有可能不同)。
格式为: 仓库地址+用户名+镜像名称[:标签]
仓库地址: hub.c.163.com
用户名: dongnan
镜像名称: ubuntu-nginx
标签 :0315
登录仓库
为了使用网易蜂巢镜像仓库服务,我们还需要登陆这个远程仓库。
docker login -u dongnan@zongming.net -p password -e dongnan@zongming.net https://hub.c.163.com
WARNING: login credentials saved in /home/dongnan/.docker/config.json
Login Succeeded
提示信息 Login Succeeded 表示登录成功,接下来就是第三步了。
推送镜像
- 推送我们准备好的镜像
docker push hub.c.163.com/dongnan/ubuntu-nginx:0315
The push refers to a repository [hub.c.163.com/dongnan/ubuntu-nginx] (len: 1)
cd34135ed904: Pushed
bbdcc791806d: Pushed
...省略
d3a1f33e8a5a: Pushed
0315: digest: sha256:64e922825284c0f2c9def81e5789e56c368cfbf93dc6a51779203022ac9b8dea size: 13173
- 因为docker镜像使用分层存储技术,对于已经存在的存储层可以复用。所以第2次推送镜像速度非常快。
docker push hub.c.163.com/dongnan/ubuntu-nginx:0316
The push refers to a repository [hub.c.163.com/dongnan/ubuntu-nginx] (len: 1)
88519bf84585: Pushed
cd34135ed904: Image already exists
bbdcc791806d: Image already exists
...省略
d3a1f33e8a5a: Image already exists
0316: digest: sha256:a6f4f059a48626113e8cc65cf73d34201c13800b73ae6de748039eb2f848ac4f size: 14777
下载和搜索镜像
至此docker镜像就推送完成了,本篇文章到这里就结束了..... Wait好像少了点什么?示例中的镜像是从哪里来的?
真细心^_^ 一般情况下镜像是使用 docker pull 命令在Docker仓库下载的,例如:
docker pull python:3.6
python镜像是由python团队维护的官方镜像,并保存在 hub.docker.com 。
Star表示欢迎程度,Official 表示官方镜像。
你可以使用 docker search 命令搜索你需要的镜像,效果是相同的。
docker search python
此外如果你需要自定义镜像,例如需要额外安装一些python库,那么可以使用Dockerfile来完成,后续将写专门写一篇Dockerfile自定义镜像的文章。
命令帮助
本篇文章涉及5个docker 子命令,它们的功能与使用方法如下图。