有没有办法从docker中访问主机zfs快照?
我尝试使用带有发送/接收的zfs快照进行一些自定义备份,在基于docker的服务器群集上运行。为了坚持当前的设置,我也希望备份服务也能在docker容器中运行。我很难确定是否有任何方法可以在管理级别从docker容器中访问hosts文件系统。
我基本上需要一种从容器中运行zfs list
,zfs snap
和zfs send
的方法。我的直觉告诉我"没有",但也许通过一些装载选项和特权魔法有一种聪明的方式
答案 0 :(得分:1)
我在/ mnt上使用带有zfs的rancherOS 1.3.0 我用以下内容启动容器:
Android OS
有了这个confis,我可以克隆snaphots
答案 1 :(得分:1)
对我来说它适用于:
答案 2 :(得分:0)
不幸的是,没有办法做到这一点。我们自己遇到了同样的问题,我们解决这个问题的方法是创建一个容器可以发出命令的无容器服务,然后无容器服务可以代表他们发出ZFS命令并返回结果。这不是一个完美的解决方案,但(至少对我们而言)它总比没有好。
答案 3 :(得分:0)
Znapzend(一个使用 ZFS 快照的备份实用程序)在他们的 github 页面中介绍了这一点:https://github.com/oetiker/znapzend#running-in-container。我正在使用它来自动备份我的 NAS 到一个单独的异地备份 NAS。
以下是链接中的相关信息:
---截图---
znapzend 也可用作 docker 容器镜像。它需要是一个特权容器,具体取决于权限。
docker run -d --name znapzend --device /dev/zfs --privileged \
oetiker/znapzend:master
要配置 znapzend,请在交互模式下运行:
docker exec -it znapzend /bin/sh
$ znapzendzetup create ...
# After exiting, restart znapzend container or send the HUP signal to
# reload config
默认情况下,容器中的 znapzend 使用 --logto /dev/stdout 运行。如果您想添加不同的参数,请在命令末尾覆盖它们:
docker run --name znapzend --device /dev/zfs --privileged \
oetiker/znapzend:master znapzend --logto /dev/stdout --runonce --debug
确保不要在容器中守护 znapzend,因为它会立即退出容器。
---截图---