更新自己的应用

未匹配的标注

现在要对我们的应用做一点点小更新:

修改源码

  1. 修改 src/static/js/app.js 文件的第 56 行:将 No items yet! Add one above! 修改为 You have no todo items yet! Add one above!

  2. 输入之前使用过的命令,重新构建镜像

    docker build -t todo-app .
  3. 使用新版本镜像运行容器

    docker run -dp 3000:3000 todo-app

    你可能会看到如下错误信息:

docker: Error response from daemon: driver failed ...... Bind for 0.0.0.0:3000 failed: port is already allocated.

之所以出现这个问题,是因为本机的 3000 端口已经被我们之前启动的容器占用了。要解决此问题,我们可以删除旧的容器。

删除容器

要删除容器,首先需要将其停止,然后将其删除。有两种方法可以停止并删除容器:

使用 CLI 命令删除容器

  1. 使用 docker ps 命令获取容器的 ID
    docker ps
  2. 使用 docker stop 命令停止容器
    # 将下方的 <the-container-id> 替换成你想停止的容器 ID
    docker stop <the-container-id>
  3. 容器停止后,可以使用 docker rm 命令删除它
    # 将下方的 <the-container-id> 替换成你想删除的容器 ID
    docker rm <the-container-id>

备注:
可以通过增加 -f 标志来合并上面的第 2、3 步,使用一条命令停止并删除容器。如:docker rm -f <the-container-id>

使用 Docker Dashboard 删除容器

通过 Docker Dashboard 可以很方便的删除容器,比通过 CLI 命令查找容器 ID 之后再将其删除要容易得多。

  1. 打开 Docker Dashboard 之后,将鼠标悬停在应用程序容器上,在右侧会看到一系列可以对容器进行操作的按钮
  2. 点击垃圾桶图标删除容器
  3. 在弹出的确认窗口中真正删除它
    Docker Dashboard - removing a container

备注:在 Docker Dashboard 中我们还看到了另一个非绿色图标显示的容器,这个容器是没有启动成功的,就是上一次执行命令出现报错的时候留下来的,我们也可以用同样的操作删除掉它。
Docker Dashboard - removing another container

再一次使用新版本镜像运行容器

  1. 运行新容器
    docker run -dp 3000:3000 todo-app
  2. 再一次访问 http://localhost:3000 将会看到我们更新之后的效果了

Updated application with updated empty text

回顾

在本节中,我们修改了源代码,同时重新执行了构建镜像命令。

虽然我们成功构建了新版本镜像,但是你可能已经注意到了两个小问题:

  • 镜像更新之前添加的所有代办事项,全部都消失了,数据没有被保存起来
  • 本次修改只是一个非常简单的文字更新,但是重新构建镜像的过程中,Dockerfile 文件列出的每一个步骤都需要重新执行一遍。肯定还有更高效的方式让容器感知代码的变化,而不必重新执行所有步骤。

之后的章节将会解决这两个问题,在开始解决这些问题之前,让我们先快速了解一下如何把我们构建好的镜像分享给其他人使用。

原始资料:Updating our Application

配套视频
www.bilibili.com/video/BV1CV411v7z...

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

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


暂无话题~