如何编辑已退出的docker内的文件?

时间:2016-03-30 12:05:40

标签: docker

我在正在运行的docker容器中编辑了一个文件并重新启动它,遗憾的是我的上一次编辑不正确。所以每次我用:

启动容器
docker start <containerId>

它总是立即退出。

现在我甚至无法修改我的编辑,因为

docker exec -it <containerId> bash

只能在正在运行的docker上运行。

问题是如何更改它并立即重启容器?或者我不得不放弃它并从现有图像中启动一个新容器?

2 个答案:

答案 0 :(得分:2)

您未提供有关容器用途或修改内容的任何详细信息。从概念上讲,您可以在文件系统的某个位置创建需要修改的文件,并在启动时创建mount that file into the container as a volume,例如:

docker run -it -v /Users/<path_to_file>:<container_path_to_file> <container>

Hovever ,这是不好的形式,因为你的容器在没有committing a new image的情况下失去了可移植性。

理想情况下,需要在Docker容器内进行的更改在Dockerfile中进行,并重新构建容器映像。这样,您的初始工作容器状态将在Dockerfile代码中表示,使您的配置可重复,可移植且不可变。

答案 1 :(得分:0)

仍然可以更改现有容器的文件系统。最好的方法是可能

docker cp <fixedFile> <containerId>:<brokenFile>

但是您也可以完全规避docker;参见here