我使用 启动了一个 Docker 容器docker run --rm
,它告诉它在停止时删除容器。现在它仍在运行,所以它还没有被删除,但我改变了主意,不再想在停止时删除它。有没有办法--rm
在现有容器上切换标志?
答案1
--rm
您可以通过将正在运行的容器提交到新映像来保留使用该标志启动的容器。
因此,当您启动的容器--rm
仍在一个终端中运行时,打开另一个终端并运行:
$ docker image commit <running container name> <new image name>
然后你可以创建一个新的容器<new image name>
没有旗帜--rm
。这将带您回到您跑步时所在的位置docker commit ...
。
答案2
不可以,无法在已创建的容器上修改该设置。您需要将要保留的容器设置、日志和文件系统更改复制到容器之外,然后停止容器(删除容器),并重新创建包含所需更改的新容器。
请注意,这是将容器视为临时容器的一个关键原因。使用 docker-compose.yml 而不是长docker run
命令行来配置容器,将数据存储在卷中,并使用 Dockerfile 对映像中的应用程序和依赖项进行更改。通过遵循该工作流程,您可以避免将容器视为需要保留的宠物,并且可以轻松删除它们并将其重新创建为已知的良好状态,同时最大限度地减少停机时间。