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

时间:2017-07-08 08:39:33

标签: ubuntu docker ubuntu-14.04 docker-machine

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

Ex: that machine is not even having docker installed

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

2 个答案:

答案 0 :(得分:1)

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

在原始计算机上,您可以正常关闭容器。备份/var/lib/docker(默认情况下),然后在新计算机上恢复。

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

答案 1 :(得分:1)

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

  • / 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的内核,您可能会更改存储驱动程序,这将导致旧图像和容器无法访问。在这种情况下,要复制图像,我建议使用注册表服务器来推送您的图像并将其下载到新主机上。注册表服务器可以相当容易地在容器中运行,是在主机之间移动图像的首选方式。如果由于某种原因无法使用注册表服务器,则可以在旧主机上使用docker save,在新主机上使用docker load将图像保存到tar文件并导入它们。

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