如何创建zfs容器docker数据,我还为我的开发人员环境创建了多个容器

时间:2014-08-26 14:09:46

标签: ubuntu docker redundancy zfs

我想创建一个zfs docker我需要一点帮助,我在ubuntu上工作,我在docker中为我的环境创建了3个容器。需要使用具有数据冗余的此文件系统。

2 个答案:

答案 0 :(得分:1)

我没有明确的答案,但我确实知道为了登上;

  • 容器需要 CAP_SYS_ADMIN ,可能 CAP_MKNOD

    您可以使用 --cap-add=""
    在Docker 1.2+中明确指定 (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来自上方)

我还会阅读使用GlusterFSthis或使用FUSE的任何内容成功执行此操作的人,因为我怀疑他们会以类似的方式受到限制。

这个答案不是超级特定的,但你的问题也不是:)

编辑: 这个答案假设OP询问如何使用带有ZFS的docker(而不是AUFS)。目前,Docker's ZFS driver支持仍在进行中。为了回答OP的问题,我想说就像通常用其他任何FS一样构建容器。

答案 1 :(得分:0)

弗洛里安,

  1. 您是否在询问如何使用ZFS作为后端创建docker容器?

    在这种情况下,有这个泊坞叉。但我不确定这是否与另一个系统上的非zfs docker主机兼容。

    docker-zfs on github

  2. 如果您只需要ZFS,就像COW和快照这样的功能只需创建一个数据集并在其中创建容器

    zfs create zfs_pool_name/docker_container_name

  3. jRadds接近我的头,但对我来说这也是一个很好的起点;)

    啊,现在我明白了。 Linux内核功能用于微调访问,而不是使用chroot来限制系统受损的程度。

    CAP_SYS_ADMIN: the new root

    希望有所帮助