更新应用程序
目录
在 第二部分中,您容器化了一个待办事项应用程序。在本部分中,您将更新应用程序和镜像。您还将了解如何停止和删除容器。
更新源代码
在以下步骤中,您将更改没有待办事项项目时显示的“空文本”,改为“您还没有待办事项!在上面添加一个!”
在
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>
使用
docker build
命令构建更新后的镜像版本。$ docker build -t getting-started .
使用更新后的代码启动一个新容器。
$ docker run -dp 127.0.0.1:3000:3000 getting-started
您可能看到了类似于这样的错误
docker: Error response from daemon: driver failed programming external connectivity on endpoint laughing_burnell
(bb242b2ca4d67eba76e79474fb36bb5125708ebdabd7f45c8eaf16caaabde9dd): Bind for 127.0.0.1:3000 failed: port is already allocated.
该错误发生是因为您无法在旧容器仍在运行时启动新容器。原因是旧容器已在使用主机端口 3000,并且机器上(包括容器)只有一个进程可以监听特定端口。要解决此问题,您需要删除旧容器。
删除旧容器
要删除容器,您首先需要停止它。停止后,您可以删除它。您可以使用 CLI 或 Docker Desktop 的图形界面删除旧容器。选择您最熟悉的方式。
使用 CLI 删除容器
使用
docker ps
命令获取容器的 ID。$ docker ps
使用
docker stop
命令停止容器。将<the-container-id>
替换为docker ps
中的 ID。$ docker stop <the-container-id>
容器停止后,可以使用
docker rm
命令删除它。$ docker rm <the-container-id>
注意
您可以通过向
docker rm
命令添加force
标志来在一个命令中停止和删除容器。例如:docker rm -f <the-container-id>
使用 Docker Desktop 删除容器
- 打开 Docker Desktop 到“容器”视图。
- 在要删除的容器的“操作”列下选择垃圾桶图标。
- 在确认对话框中,选择“永久删除”。
启动更新的应用程序容器
现在,使用
docker run
命令启动更新后的应用程序。$ docker run -dp 127.0.0.1:3000:3000 getting-started
在 https://127.0.0.1:3000上刷新浏览器,您应该看到更新后的帮助文本。
总结
在本节中,您学习了如何更新和重建容器,以及如何停止和删除容器。
相关信息
下一步
接下来,您将学习如何与其他人共享镜像。