保存交互式容器的状态
内容提要
有时我们需要在交互式 shell 中启动 Docker 容器进行测试,但中断后容器会被销毁。可以使用 `docker run -it --rm --mount` 命令启动交互式 shell,并通过 `--mount` 创建持久存储来保存工作。虽然可以用 `docker commit` 保存状态,但社区不推荐这种方法,建议使用 Dockerfile。不过,很多人只想在本地保存状态,不想占用额外存储。
关键要点
-
在交互式 shell 中启动 Docker 容器进行测试时,容器在中断后会被销毁。
-
使用 `docker run -it --rm --mount` 命令可以启动交互式 shell,并创建持久存储以保存工作。
-
命令中的 `--rm` 选项表示容器退出后会被杀死。
-
使用 `--mount` 可以创建持久存储,保存所有工作。
-
使用 `-p` 选项可以将容器的端口暴露给主机。
-
虽然可以使用 `docker commit` 保存状态,但这种方法被社区认为是不推荐的。
-
最佳实践是使用 Dockerfile 来保存状态。
-
许多人只是想在本地保存状态,而不想占用额外的存储。
延伸问答
如何在交互式 shell 中启动 Docker 容器并保存工作?
可以使用命令 `docker run -it --rm --mount` 来启动交互式 shell,并通过 `--mount` 创建持久存储以保存工作。
使用 `--rm` 选项有什么作用?
`--rm` 选项表示容器退出后会被自动销毁。
为什么不推荐使用 `docker commit` 来保存容器状态?
社区认为使用 `docker commit` 保存状态是一种不推荐的做法,最佳实践是使用 Dockerfile。
如何在 Docker 中创建持久存储?
可以通过 `--mount` 选项来创建持久存储,以保存所有工作。
在 Docker 中如何暴露容器的端口?
可以使用 `-p` 选项将容器的端口暴露给主机。
许多人在使用 Docker 时有什么共同需求?
许多人希望在本地保存状态,而不想占用额外的存储。