更新应用程序
目录
在第 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>
注意你可以通过向
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在浏览器中刷新 https://:3000,你应该能看到更新后的帮助文本。
摘要
在本节中,你学习了如何更新和重建镜像,以及如何停止和移除容器。
相关信息
后续步骤
接下来,你将学习如何与他人共享镜像。
共享应用程序