如何备份和恢复docker容器(没有原来的docker运行命令)

How to backup and restore docker containers (without the original docker run command)

我希望能够 "freeze" 将容器状态保存到文件中,然后在容器被意外删除时恢复它。这是为了防止意外删除容器。

我尝试 docker export 到 tar 文件,然后 docker import,但它会创建一个 图像 docker 文件系统...不是容器本身。我知道我可以使用此图像中的 docker run,但我不是容器创建者,我不知道最初使用什么命令创建它。

我还尝试使用 docker-runcrootfsconfig.json/run/docker/libcontainerd/CONTAINER_ID/config.json 重新创建容器,但我发现这并不容易,我想要一个 "not so hack-ish" 解决方案。

目前,我知道实现此目的的唯一方法是创建 docker 主机 VM 的快照,如果有人不小心删除了容器,则恢复快照。但上次发生这种情况时,最后一次备份是在 16 小时前进行的,我丢失了之后创建的所有数据(恢复过程也花费了很多时间)。

我只是想将容器状态保存到一个文件中,并能够在删除的情况下重新创建它。

您可以使用 docker autocompose 获得一个 docker-compose.yml 等效项,这样您就可以重新创建容器以及您保存的图像。