如何分享我们的应用
既然我们已经构建了一个镜像了,让我们把它分享给其他人吧!
要分享docker镜像,必须使用docker注册表。
默认注册表是 Docker Hub,可以自行搜索对应网站。我们到目前为止用过的所有镜像也都是从这里来的。
创建一个库
为了把一个镜像推送到注册表中,我们首先需要在Docker Hub上创建一个库。
1、登录 Docker Hub 。网址请自行搜索,找不到也可发我私信询问。
Docker Hub主页
2、点击 Create Repository 按钮
3、至于库的名字,使用 getting-started 。确保可见性是 Public 。
4、点击 Create 按钮
页面右边,能够看到以 Docker commands 命名的段落。
它给出了一个范例命令,你之后会需要运行这个命令来往仓库做推送。
推送镜像
1、在命令行中,试着运行刚才看到的 Docker Hub 上的push命令。教程里,命令中包含了docker,我的命令行中包含了krave。这分别是我们各自的命名空间。你务必也要记得把命名空间替换成你自己的命名空间哦。
docker push docker/getting-started
但是为什么命令会失败呢?push命令会寻找以 docker/getting-started 命名的镜像,但是失败了,没有找到。如果你运行 docker image ls 的话,你也找不到。
要解决这个问题,我们需要把之前构建的镜像做tag操作,给这个镜像另一个名字。
2、使用 docker login -u 你-的-名-字 登录Docker Hub
3、使用 docker tag 命令给 getting-started 镜像起个新名字。记得把 你-的-名-字 替换成你的docker ID。比如我就把它替换成了krave
docker tag getting-started 你-的-名-字/getting-started
4、再试一次push命令。如果你从Docker Hub的网站上直接复制下来的话,你可以把 tagname 那部分去掉,因为我们没有给镜像名加标签。如果不指定标签的话,docker会使用 latest 标签。
docker push 你-的-名-字/getting-started
在一个新实例上运行我们的镜像
既然我们已经构建了镜像,并把镜像推送到了注册表中,让我们在一个崭新的实例上,试着运行一下我们的应用看看。这个新实例从未见过这个容器镜像。我们会用到 Play with Docker。
1、网页浏览器访问 Play with Docker。如果搜不到网址的话,可以私信问我。
2、使用 Docker Hub 账号登录。
3、登录后点击左侧的 “+ ADD NEW INSTANCE” 按钮。几秒钟之后,浏览器中就会打开一个终端窗口。
4、在浏览器的终端窗口中,启动刚刚推送过的应用。
docker run -dp 3000:3000 你-的-名-字/getting-started
你会看到镜像被拖下来,并且启动应用。
5、3000标签跳出来以后,点击一下这个标签。你应该能够看到你修改过的应用了。如果3000标签没有出现,你可以点击 “Open Port” 按钮,并输入3000。
回顾
在这一章中,我们学习了如何通过把我们的镜像推送到注册表中,进行分享。然后我们启动了一个崭新的实例(可以理解为虚拟机),并且在这个实例上,运行了刚刚推送到注册表的镜像。这在持续集成的管道中很常见,管道会创建镜像并将其推送到注册表中,然后生产环境就能够使用最新版本的镜像了。
搞清如何分享了之后,回到上一章一起学Docker4:如何更新正在运行中的应用最后留下的问题:重启应用之后,所有的待办列表任务都丢失了。这很明显并不是一个好的用户体验,接着就来看看怎么样可以重启应用的同时,仍旧保留数据吧!
操作中如果遇到问题,欢迎下方留言或给我私信。记得关注,我们下期,不见不散。
对了,国庆快乐哈!
推荐文章: