有没有办法备份我的码头工人环境



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

Ex: that machine is not even having docker installed

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

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

/
  • 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(,以重新启动新主机上的容器。

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

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

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

最新更新