更新应用程序
目录
在 第一部分 中,你已经容器化了一个待办事项应用程序。在本部分中,你将更新应用程序和镜像。你还会学习如何停止和移除容器。
更新源代码
在接下来的步骤中,你将更改在没有任何待办事项列表项时显示的“空文本”,将其从“empty text”更改为“You have no todo items yet! Add one above!”。
在 `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` 命令停止容器。将 `
` 替换为 `docker ps` 中的 ID。 $ docker stop <the-container-id>
容器停止后,可以使用 `docker rm` 命令将其移除。
$ docker rm <the-container-id>
注意
你可以通过向 `docker rm` 命令添加 `force` 标志来单条命令停止并移除容器。例如:`docker rm -f
`
使用 Docker Desktop 移除容器
- 打开 Docker Desktop 到 **容器** 视图。
- 选择要删除的容器的 **操作** 列下的垃圾桶图标。
- 在确认对话框中,选择 **永久删除**。
启动更新后的应用程序容器
现在,使用 `docker run` 命令启动更新后的应用程序。
$ docker run -dp 127.0.0.1:3000:3000 getting-started
刷新浏览器上的 http://localhost:3000,你应该会看到更新后的帮助文本。
总结
在本节中,你学习了如何更新和重建容器,以及如何停止和移除容器。
相关信息
后续步骤
接下来,你将学习如何与他人共享镜像。