我想要lxc集装箱备份。我们有带有12.04 LTS ubuntu server的服务器,我在其中安装了LXC - 1.0.0.alpha2。我想把我们的ubuntu服务器升级到14.04LTS。因此,我想要做的是让LXC容器备份->升级操作系统到14.04 ->还原LXC容器。在早期版本(0.7.5,我猜)中有lxc-备份和lxc-还原,但是对于1.0.0.2,我们没有备份和恢复操作。如何让lxc容器备份。我花了3个多小时在复制容器文件夹(/var/lib/lxc/my_ container /)中,并将其粘贴到另一个12.04 LTS服务器中,但是它无法工作,
#sudo lxc-start -n my_container
lxc-start: invalid sequence number 1, expected 4.
lxc-start: failed to spwan "my_container"那么,我怎么能期望它将在升级的14.04服务器操作系统中工作。
你想要lxc-集装箱备份吗?
发布于 2015-12-10 05:28:41
编辑:2016年3月29日
如果您无意中发现了这篇文章,我的答案实际上是关于在系统之间移动 LXC容器,因为这似乎是要问的问题。
如果您想要备份您的LXC容器,请参阅@Stuart的答案以获得一些很好的选择。
在主机系统之间移动LXC容器
这就是我如何在系统之间迁移LXC容器的方式。我已经成功地将基于ubuntu的12.04容器转移到了14.04主机上,它们工作得很好。
如果您使用的是一个覆盖支持的容器,那么您还需要迁移这个新容器所基于的容器。最后,您可能会看到一些关于跳过的套接字文件的警告:
tar: /var/lib/lxc/$NAME/rootfs/dev/log: socket ignored
我忽略了这个错误,我管理的任何容器都没有任何问题。如果您有进一步的问题,请将您的错误消息添加到原始帖子中,我将详细说明。
发布于 2014-09-26 22:50:19
编辑:2017年11月
为了将lxc容器快速备份到没有btrfs文件系统的remote主机上,我使用sshfs & cd从remote主机将文件系统挂载到挂载中。停止容器&创建容器的tar.xz存档。
编辑:2016年3月
现在,我在一个lxc文件系统上运行我的btrfs容器,以便更简单地获取正在运行的容器的snapshot。btrfs sub snap检测到proc run sys是虚拟文件系统&在快照中不包括它们。
我使用杜普备份LXC容器。与备份普通机器不同,DO希望在备份中包含来自LXC容器的/dev。
apt-get install duply
duply mybackup create在~/.duply/mybackup/exclude中,我使用了:
- /cdrom
- /dev
- /lost+found
- /media
- /mnt
- /proc
- /run
- /sys
- /tmp
- /var/backup/restore/*
- /var/backup/tmp/*
- /var/lib/lxc/*/rootfs/lost+found
- /var/lib/lxc/*/rootfs/media/*
- /var/lib/lxc/*/rootfs/mnt/*
- /var/lib/lxc/*/rootfs/proc/*
- /var/lib/lxc/*/rootfs/run/*
- /var/lib/lxc/*/rootfs/sys/*
- /var/lib/lxc/*/rootfs/tmp/*
- /var/lib/lxcfs/*以上将备份整个机器&所有的LXC容器。
要只备份容器,编辑~/.duply/mybackup/conf &将SOURCE='/'更改为SOURCE='/var/lib/lxc' &从~/.duply/mybackup/exclude中删除非lxc行
使用运行Alpine容器进行测试-也将在Debian上工作。
使用Duply的简单备份 -您还可以对本地文件进行非常简单的未加密备份(在~/.duply/mybackup/conf中设置TARGET='file://[relative|/absolute]/local/path' )。
要签署杜普备份,请参阅自动化环境中的GnuPG (无密码签名密钥,而不是将密码存储在明文中)。
在Duply conf文件中为cron作业设置conf。
如果您执行而不是,则在conf中存储任何明文密码,做not,禁用上的GPG_TEST恢复-因此gpg-agent会缓存您的密码。
发布于 2015-08-29 09:24:48
我发现备份容器的最简单的方法是只运行lxc-克隆。
lxc-clone -o NAMEOFCONTAINER -n NAMEOFCONTAINER -P BACKUPDIR还原它非常简单,只需将备份复制或移动回/var/lib/lxc,您也可以将其解析为节省空间。
https://stackoverflow.com/questions/23427129
复制相似问题