更新应用程序
目录
在第 1 部分中,您容器化了一个 todo 应用程序。在本部分中,您将更新应用程序和镜像。您还将学习如何停止和删除容器。
更新源码
在以下步骤中,你将在没有任何待办事项列表项时将“空文本”更改为“You have no todo items yet!在上面加一个!
在文件中,更新第 56 行以使用新的空文本。
src/static/js/app.js
- <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 删除容器
通过命令获取容器的 ID。
docker ps
$ docker ps
使用命令停止容器。替换为 中的 ID。
docker stop
<the-container-id>
docker ps
$ docker stop <the-container-id>
容器停止后,您可以使用命令将其删除。
docker rm
$ docker rm <the-container-id>
注意
您可以通过向命令添加标志,在单个命令中停止和删除容器。例如:
force
docker rm
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 上刷新浏览器,您应该会看到更新的帮助文本。
总结
在本节中,您学习了如何更新和重建容器,以及如何停止和删除容器。
相关信息:
后续步骤
接下来,您将学习如何与他人共享镜像。