更新应用程序
Table of contents
在第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> -
使用
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>
Note你可以通过在
docker rm命令中添加force标志来一次性停止并删除容器。例如:docker rm -f <the-container-id>
使用Docker Desktop删除容器
- 打开Docker Desktop,进入Containers视图。
- 在Actions列中,选择要删除容器的垃圾桶图标。
- 在确认对话框中,选择Delete forever。
启动更新后的应用程序容器
-
现在,使用
docker run命令启动更新后的应用程序。$ docker run -dp 127.0.0.1:3000:3000 getting-started -
刷新浏览器中的 http://localhost:3000,你应该会看到更新后的帮助文本。
总结
在本节中,你学习了如何更新和重建镜像,以及如何停止和删除容器。
相关信息:
下一步
接下来,你将学习如何与他人共享镜像。
共享应用程序