3.3 Docker最新入门教程-Docker入门-更新应用程序

3.3 更新应用程序

第 2 部分中,您容器化了一个待办事项应用程序。在这一部分中,您将更新应用程序和容器镜像。您还将学习如何停止和删除容器。

更新源代码

在下面的步骤中,当您没有任何待办事项列表项时,您将把“空白文本”更改为“您还没有待办事项!在上面加一个!”

  1. src/static/js/app.js文件中,更新第 56 行以使用新的空文本。

     ...
     -                <p className="text-center">No items yet! Add one above!</p>
     +                <p className="text-center">You have no todo items yet! Add one above!</p>
     ...
    
  2. 使用您在第 2 部分docker build中使用的相同命令构建镜像的更新版本。

     $ docker build -t getting-started .
    
  3. 使用更新的代码启动一个新容器。

     $ docker run -dp 3000:3000 getting-started
    

您可能会看到这样的错误(ID 会有所不同):

docker: Error response from daemon: driver failed programming external connectivity on endpoint laughing_burnell 
(bb242b2ca4d67eba76e79474fb36bb5125708ebdabd7f45c8eaf16caaabde9dd): Bind for 0.0.0.0:3000 failed: port is already allocated.

发生错误是因为您无法在旧容器仍在运行时启动新容器。原因是旧容器已经在使用主机的 3000 端口,机器上只有一个进程(包括容器)可以监听特定端口。要解决此问题,您需要删除旧容器。

移除旧容器

要删除容器,您首先需要停止它。停止后,您可以将其删除。您可以使用 CLI 或 Docker Desktop 的图形界面删除旧容器。选择您最满意的选项。

使用 CLI 删除容器
  1. docker ps使用命令获取容器的ID 。

     $ docker ps
    
  2. 使用docker stop命令停止容器。将 替换为来自 的 ID docker ps

     $ docker stop <the-container-id>
    
  3. 容器停止后,您可以使用docker rm命令将其删除。

     $ docker rm <the-container-id>
    

笔记

force`您可以通过向命令添加标志来在单个命令中停止和删除容器`docker rm`。例如:`docker rm -f <the-container-id>
启动更新后的应用程序容器
  1. 现在,使用docker run命令启动更新后的应用程序。

     $ docker run -dp 3000:3000 getting-started
    
  2. 在http://localhost:3000上刷新浏览器,您应该会看到更新后的帮助文本。

使用更新的空文本更新应用程序




个人写的小程序,有需求的可以看看:

头像易 : 定制专属个性头像,目前有万圣节、世界杯主题,后续会增加更多主题
源码地址https://gitee.com/eyes-star/txy-openmp.git

posted @ 2022-11-25 10:12  eyes-star  阅读(170)  评论(0编辑  收藏  举报