如何更新正在运行中的应用
随着小需求的出现,比如没有任何待办事项的时候,产品团队可能会让我们把空白描述修改一下。他们可能希望改成:
你还没有待办任务!上面这里加一个!
很简单对吧,走起。
更新源代码
1、打开我们心爱的代码编辑器,回到教程项目。在 src/static/js/app.js 文件中,把56行更新成下面这样,来形成新的空白描述文本。
修改前的空白描述文本
修改后的空白描述文本
2、因为我们是通过docker来部署应用的。这样一个崭新的代码需要一个崭新的镜像,让我们使用和一起学Docker3:基于真实应用学习docker中一样的命令,来构建修改后的镜像:
docker build -t getting-started .
既然来了vscode了,那我们今天就调用vscode集成的命令行工具运行上述命令。
vscode中运行命令行构建docker镜像
3、使用修改后的镜像启动一个新容器
啊偶,小霸王其乐无穷的很,报错啦。
为什么呢?我们无法启动新容器的原因是,我们老的容器仍旧在运行当中。
新容器和老容器使用的都是3000端口,不管是宿主机上还是容器上,一台机器只能有一个进程监听某个端口。我们新老2个容器都要监听端口3000的话,就冲突了。为了解决这个问题,我们需要移除旧的容器。
替换旧容器
首先我们需要停止正在运行中的容器。停止之后,就可以移除它了。有2种方法移除旧容器,随便你选。
使用命令行移除容器
1、使用 docker ps 命令获取容器的 ID
docker ps
红框中就是docker容器的id
2、使用 docker stop 命令停止容器运行。把 <容器id> 替换成上一步获取的ID,删掉 <>
docker stop <容器id>
3、容器停止运行后,使用 docker rm 命令删除容器
docker rm <容器id>
小贴士:你还能只用1个命令就停止和删除容器,就是在 docker rm 命令中,加上 force 旗标。比如: docker rm -f <容器id>
使用docker仪表盘删除容器
打开docker仪表盘的话,点两下就能删除一个容器。和查看容器ID再删除比起来,容易得多。
1、仪表盘打开的情况下,鼠标移动到应用容器上,右侧会看到一系列按钮。
2、点击垃圾桶图标删除容器。
3、确认删除。
启动修改后的应用容器
1、启动容器
docker run -dp 3000:3000 getting-started
2、网页浏览器访问 localhost:3000 就可以看到更新的内容了!
回顾
我们成功构建了更新后的应用,不过你可能需要注意2件事:
1、老容器中生成的待办任务都没了。这可不好!之后会谈到怎么处理。
2、这样一个小改动牵涉到这么多的步骤。之后的章节中,我们会谈到怎样才能不用每次修改,都构建一个镜像,启动一个容器。
在讨论持久化之前,我们先快速地过一下,如何与他人分享这些镜像。
大家在阅读和实际操作中,遇到的任何问题都欢迎评论区留言或发我微信。
记得关注我,下一篇文章敬请期待。
推荐文章: