如何在已停止的 Docker 容器上执行 运行 命令?

How to run command on stopped Docker container?

我有一个以前用过的 Wordpress 容器。由于链接容器的变化,Wordpress容器现在无法启动(入口点代码有错误)

由于 Wordpress 容器包含一些未存储在主机文件系统中的配置,我现在不应该重做 docker run。相反,我希望 bash 进入停止的容器,检查所有更改的文件,然后先备份这些文件。

有没有办法在停止的容器上执行 bash?如何操作?

更自然的方法是使用 docker diff 检查容器文件系统的更改。 - 将仅显示更改文件的名称。

如果您幸运地使用了成熟的容器并且对卷进行了更改,则可以使用 --volumes-from <stopped container> 启动一个新容器。

或者您可以 start the stopped container and then do exec 进入。

第三个选项是将停止的容器作为映像提交并从中启动一个新容器。

docker 运行 -v /mydata --name mydata ubuntu /bin/false

然后...

docker exec mydata touch /mydata/foo # 如果不是 运行ning 则不起作用 :-(

一个好的解决方案是 运行 每次要附加到数据容器时使用一次性容器。在这种情况下,数据容器本身可能完全是空的,因为临时容器将具有 OS 工具。

$ docker run --rm --volumes-from mydata -it ubuntu bash
root@645045d3cc87:/# ls /mydata
root@645045d3cc87:/# touch /mydata/foo
root@645045d3cc87:/# exit
exit