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

我正在使用Ubuntu 14.04,并运行一些docker容器和图像与Python脚本。现在我必须重新安装到另一台Ubuntu机器。

Ex: that machine is not even having docker installed 

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

要备份的位置因运行容器的方式以及要还原到的环境而异。 一些要备份的目录包括:

  • / var / lib / docker:这包括所有的图像,容器,插件和群集设置
  • / etc / docker:这包括daemon.json中的任何定制,通常用于TLS证书
  • / etc / systemd / system / docker *:你可能已经在这个位置定制了启动脚本

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

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

如果您以某种方式更改目标服务器,例如更改运行不同版本的Linux的内核,则可能会更改存储驱动程序,从而导致旧图像和容器无法访问。 在这种情况下,为了复制图像,我build议使用registry服务器来推送图像,并将它们放在新主机上。 registry服务器可以很容易地在容器中运行,并且是在主机之间移动图像的首选方式。 如果出于某种原因无法使用registry服务器,则可以使用旧主机上的docker save和新主机上的docker load来将映像保存到tar文件并导入它们。

在平台更改之后,在复制映像之后,您仍然需要复制/var/lib/docker/volumes和其他任何主机位置中的/var/lib/docker/volumes 。 然后,您需要复制容器configuration,最好使用docker-compose.yml来重新启动新主机上的容器。

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

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

我使用AWS EC2现货实例进行此操作。 不保证这是否适用于不同版本的Docker。