如何删除一个容器而不删除对该容器所做的所有更改?
我已经使用过:
停止所有正在运行的容器:docker rm $(docker ps -a -q)
删除所有已停止的容器:Html.RenderAction("Reviews", "Poetry", new { id = "{{ poetry.ID }}" });
答案 0 :(得分:0)
您可以使用docker commit
从容器中创建docker映像。
该映像可用于启动新容器,也可以推送到docker存储库以供以后使用。
https://docs.docker.com/engine/reference/commandline/commit/
答案 1 :(得分:0)
您没有。删除Docker容器后,您所做的任何更改都将丢失。另外,您需要定期删除容器以更改选项,例如基本映像(如果需要一些安全补丁),网络选项或环境变量。
为此的标准模式涉及两件事:
请勿在正在运行的容器内安装软件或进行其他配置更改。而是编写一个对您有用的Dockerfile
,将其检入源代码管理,然后使用docker build
从中构建图像。 (如果您发现了错误,可以轻松修复并重新运行;如果需要在六个月内进行更新,则您会记录您所做的事情。)
如果您的容器确实需要某些持久状态,请使用docker run -v
或类似的选项将其启动,以将主机目录或命名卷装入该容器中。在那里存储的数据将超出容器的使用寿命。
理论上,docker commit
可以将容器变成图片,但实际上并不是最佳做法。以这种方式生成的图像无法重新创建或更新(同样,请想像一下基础图像中的关键安全修复程序)。在某些情况下,已提交的容器甚至没有要保存的数据(例如,您无法有效地提交MySQL或PostgreSQL容器)。