前言
这一篇应该是最近最后一篇关于docker的博客了,咱来个有始有终,将最后一步——上传镜像给他写完,废话不多说,直接进入正题。
登录
首先需要确保登录才能推送到你的仓库中去,在终端输入docker login
,输入用户名和密码(密码输入时不可见)。
打标签
接下来需要为你的镜像打好标签,如下所示:
docker tag <local-image-name> yourusername/<repository-name>:<tag>
<local-image-name>
即你的本地镜像名,yourusername
是你在docker hub上的用户名,<repository-name>
是你自己定义的一个仓库名<tag>
是标签。
例如:
docker tag mysql-app:latest qiuchuang/mysql-app:1.0
当然你也可以在构建镜像的时候就打好标签,如下所示:
docker build -t qiuchuang/my-frontend-app:v2 .
推送镜像
最后一步,将本地打好标签的镜像推送到远程仓库。指令如下:
docker push yourusername/<repository-name>:<tag>
这里的<repository-name>
就是你刚才在打标签的时候自定义的仓库名。
例如:
docker push qiuchuang/my-frontend-app:v2
推送完成后可以登录Docker Hub网站查看自己的仓库下是否有新增镜像,如果有,代表推送成功。
改写docker-compose文件
当你用docker-compose组织了你的几个项目镜像,并且你又将你的镜像推送到了仓库里面,那么你在编写docker-compose时稍微改写一下,那么几乎任何装了docker的电脑都能跑起你的项目来了。具体修改如下:
将image指定为 yourusername/<repository-name>:<tag>
的形式,那么就可以无需本地构建镜像,直接从远程仓库中pull镜像下来。
温馨提醒一下,关于标签有一个需要注意的点,即必须严格相同,例如“1”和“1.0”是不能混为一谈的,否则会构建失败。
尾声
写到这里,我长舒了一口气,学了五天dokcer,写了五天博客,而且一天还不止一篇,我有时在想这样到底值不值得,但当我想到做了总比没做好,心里便稳当了许多,是啊,做了这么多,总还是会有收获的,哪怕很少。最后,送自己一句话,“心之所向,无问西东”。