Docker通过更改删除容器

时间:2019-02-28 14:06:12

标签: docker

如何删除一个容器而不删除对该容器所做的所有更改?

我已经使用过:

停止所有正在运行的容器:docker rm $(docker ps -a -q)

删除所有已停止的容器:Html.RenderAction("Reviews", "Poetry", new { id = "{{ poetry.ID }}" });

2 个答案:

答案 0 :(得分:0)

您可以使用docker commit从容器中创建docker映像。 该映像可用于启动新容器,也可以推送到docker存储库以供以后使用。

https://docs.docker.com/engine/reference/commandline/commit/

答案 1 :(得分:0)

您没有。删除Docker容器后,您所做的任何更改都将丢失。另外,您需要定期删除容器以更改选项,例如基本映像(如果需要一些安全补丁),网络选项或环境变量。

为此的标准模式涉及两件事:

  1. 请勿在正在运行的容器内安装软件或进行其他配置更改。而是编写一个对您有用的Dockerfile,将其检入源代码管理,然后使用docker build从中构建图像。 (如果您发现了错误,可以轻松修复并重新运行;如果需要在六个月内进行更新,则您会记录您所做的事情。)

  2. 如果您的容器确实需要某些持久状态,请使用docker run -v或类似的选项将其启动,以将主机目录或命名卷装入该容器中。在那里存储的数据将超出容器的使用寿命。

理论上,docker commit可以将容器变成图片,但实际上并不是最佳做法。以这种方式生成的图像无法重新创建或更新(同样,请想像一下基础图像中的关键安全修复程序)。在某些情况下,已提交的容器甚至没有要保存的数据(例如,您无法有效地提交MySQL或PostgreSQL容器)。