如何更新正在运行中的应用

未匹配的标注

随着小需求的出现,比如没有任何待办事项的时候,产品团队可能会让我们把空白描述修改一下。他们可能希望改成:

你还没有待办任务!上面这里加一个!

很简单对吧,走起。

更新源代码

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、这样一个小改动牵涉到这么多的步骤。之后的章节中,我们会谈到怎样才能不用每次修改,都构建一个镜像,启动一个容器。

在讨论持久化之前,我们先快速地过一下,如何与他人分享这些镜像。

大家在阅读和实际操作中,遇到的任何问题都欢迎评论区留言或发我微信。

记得关注我,下一篇文章敬请期待。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
秦晓武
讨论数量: 0
发起讨论 只看当前版本


暂无话题~