我想创建一个 zfs docker 我需要一点帮助,我在 ubuntu 上工作,我在 docker 中为我的环境创建了 3 个容器。需要使用这个具有数据冗余的文件系统。
2 回答
我没有明确的答案,但我确实知道这是为了安装;
容器将需要
CAP_SYS_ADMIN
,也许CAP_MKNOD
。您可以在 Docker 1.2+ 中使用 (如果您知道自己需要什么,可能会让您了解可以做什么。)
--cap-add=""
man capabilities
或者简单地说:(
--priveleged=True
不太明确,不太安全)docker run --cap-add="CAP_SYS_ADMIN" --cap-add="CAP_MKNOD" -i -t -v /mount/from/host:/container/mount/point --name="MYCONTAINER" repo/name /bin/bash
SE Linux 安全上下文:
让您的数据量知道 SELINUX 安全类型(允许写入
到外部卷)。
chcon -Rt svirt_sandbox_file_t /var/db
/var/db
您的挂载点在哪里(/mount/from/host
例如,从上面)
我还会读到那些使用GlusterFS或this或任何使用 FUSE 成功完成相同操作的人,因为我怀疑他们会以类似的方式受到限制。
这个答案不是超级具体的,但你的问题也不是:)
编辑:这个答案假设 OP 询问如何将 docker 与 ZFS(而不是 AUFS)一起使用。Docker 的 ZFS 驱动程序支持目前仍在进行中。要回答 OP 的问题,我想说的是像通常使用任何其他 FS 一样构建容器。
弗洛里安,
您是在问如何创建一个以 ZFS 作为后端的 docker 容器吗?
在这种情况下,有这个 docker fork。但我不确定这是否与另一个系统上的非 zfs docker 主机兼容。
如果您只需要 ZFS 的 COW 和快照等功能,只需创建一个数据集并在其中创建容器
zfs create zfs_pool_name/docker_container_name
jRadds 方法就在我头上飞过,但这对我来说也是一个很好的起点;)
啊,现在我明白了。Linux 内核功能旨在微调访问,而不是使用 chroot 来限制系统受到损害的程度。
希望有帮助