有没有办法备份我的 docker 环境

Is there a way to backup my docker environment

我正在使用 Ubuntu 14.04 和 运行 一些 docker 容器和带有 python script.Now 的图像,我必须将其重新安装到另一个 Ubuntu 机.

Ex: that machine is not even having docker installed

有没有办法将完整的 docker 引擎从我配置的机器备份到另一台机器

至少,您必须在新的 Ubuntu 机器上安装 Docker(如果可能,请安装相同版本)。

在您原来的机器上,您可以正常关闭您的容器。备份 /var/lib/docker(默认),然后在您的新机器上恢复。

我使用 AWS EC2 spot 实例执行此操作。不保证这是否适用于不同版本 Docker.

备份位置因运行安装容器的方式和要恢复到的环境而异。一些要备份的目录包括:

  • /var/lib/docker:这包括所有图像、容器、插件和 swarm 设置
  • /etc/docker:这包括 daemon.json 中的任何自定义,通常用于 TLS 证书
  • /etc/systemd/system/docker*:您可能在此位置自定义了 startup 脚本

这不包括您已安装到主机文件系统上不同位置的任何特定于容器的主机卷。您可以通过以下方式查找这些目录:

$ docker ps -q | xargs docker inspect -f '{{.Name}}:
{{ range .HostConfig.Binds }}{{.}}
{{end}}
'

如果您要以某种方式更改 target 服务器,例如更改内核 运行 使用不同版本的 linux,您可能会更改存储驱动程序,这将导致您的旧图像和容器变得无法访问。在那种情况下,要复制图像,我建议您也使用注册服务器来推送您的图像并将它们拉到新主机上。注册表服务器可以很容易地 运行 在容器中,并且是在主机之间移动图像的首选方式。如果由于某种原因您不能使用注册服务器,您可以在旧主机上使用 docker save 并在新主机上使用 docker load 将图像保存到 tar 文件并导入它们。

随着平台的变化,复制图像后,您仍然需要复制 /var/lib/docker/volumes 和任何其他主机位置中的卷。然后您需要复制容器配置,最好使用 docker-compose.yml,以在新主机上重新tart 容器。