Назад | Перейти на главную страницу

Привязать монтируемый каталог хоста с поддержкой ZFS в контейнере Docker

У меня Docker 18.06.1-ce работает на Ubuntu 18.04. Докер работает в файловой системе ext4.

У меня есть массив рейдов для большого хранилища под управлением ZFS. Я хочу смонтировать каталог из массива ZFS в контейнер. Однако, пытаясь это сделать, я получаю следующую ошибку:

docker run -it -v /mainpool/test:/mnt/mainpool busybox
docker: Error response from daemon: error while creating mount source path '/mainpool/test': mkdir /mainpool: read-only file system.

При поиске я видел, что у некоторых других была такая же проблема. Подобно:https://www.reddit.com/r/docker/comments/93u3hf/unable_to_mount_zfs_host_directory_in_container

Я не хочу переносить Docker в файловую систему ZFS по соображениям производительности. Похоже, что / var / lib / docker должен находиться в ZFS для использования драйвера хранилища ZFS.

У кого-нибудь есть мысли о том, как это обойти?

РЕДАКТИРОВАТЬ: добавление дополнительной информации.

Я запускаю Docker 18.06.1-ce в мгновение ока. Я использую daemon.json по умолчанию, поставляемый с оснасткой:

    "log-level":        "error",
    "storage-driver":   "aufs"

Некоторая возможная полезная информация из Docker:

Storage Driver: aufs
 Root Dir: /var/snap/docker/common/var-lib-docker/aufs
 Backing Filesystem: extfs
 Dirs: 192
 Dirperm1 Supported: true
Security Options:
 apparmor
 seccomp
  Profile: default
Docker Root Dir: /var/snap/docker/common/var-lib-docker

Возможная соответствующая информация из / proc / mounts:

/dev/nvme0n1p2 / ext4 rw,relatime,data=ordered 0 0
/dev/loop8 /snap/docker/321 squashfs ro,nodev,relatime 0 0
nsfs /run/snapd/ns/docker.mnt nsfs rw 0 0
mainpool /mainpool zfs rw,xattr,noacl 0 0 

@gertvdijk был правильным.

После переустановки докера из apt (внешняя привязка) и проверки того, что он настроен для использования драйвера хранилища overlay2, я могу привязать каталоги монтирования в моем пуле zfs.

Таким образом, либо запуск докера в оснастке, либо использование драйвера хранилища aufs (вместо overlay2) вызывало проблему с попыткой монтировать каталоги из пула zfs.

Я столкнулся с той же ошибкой. Мне не удалось смонтировать каталог из набора данных ZFS. Докер был установлен как оснастка, хотя он использовал драйвер хранилища overlay2. Я также удалил докер (как оснастку), установил его с помощью apt и установил драйвер хранилища на overlay2. Теперь это работает как шарм.