Докер и удаленные тома - PullRequest
0 голосов
/ 27 января 2019

Я новичок в докере, и у меня проблема с томами, расположенными на NAS.

Подключение к общим ресурсам работает нормально.Как с SMB, так и с NFS я мог подключить общие ресурсы к хосту докера, используя следующие записи в fstab

<IP of the NAS>:/volume1/sharenfs /nas/nfs nfs _netdev,bind 0 0
//<IP of the NAS>/sharesmb /nas/smb cifs _netdev,bind,credentials=/root/.cifs-credentials,iocharset=utf8,vers=3.0,uid=0,gid=0 0 0

Создание каталогов и файлов через хост Docker работает нормально.Однако, как только я запускаю контейнер и создаю данные на общих ресурсах, он работает только условно.Например, portainer/portainer работает без каких-либо ограничений, но kempkensteffen/usvn или yobasystems/alpine-mariadb не будет работать должным образом.Во время установки usvn отсутствуют постоянные права на запись на томе конфигурации.

В документации Docker говорится, что вместо прямых путей следует использовать Docker Volumes.Поэтому я создал тома в соответствии с документацией:

docker volume create \
    --driver local \
    --opt type=nfs \
    --opt o="vers=4,addr=<IP of NAS>,rw" \
    --opt device=:<Path on NAS> \
    v_portainer

и

docker volume create \
    --driver local \
    --opt type=cifs \
    --opt o=addr=<IP of NAS>,rw \
    --opt device=//<IP of NAS>/<Share on NAS> \
    --opt o=uid=0,username=<smbuser>,password=<smbpassword>,nounix,file_mode=0770,dir_mode=0770 \
    v_portainer

Итак, я удалил записи fstab и создал тома с заданным синтаксисом.Но это также приводит к тому же эффекту - portainer работает, а другие нет.Теперь я совершенно беспомощен и благодарен за каждый совет.Примечание: я протестировал оба NFS и CIFS безуспешно.

Среда состоит из:

  • ОС Docker Host: Alpine Linux 3.8.2 (в настоящее время работаетв виртуальной машине VirtualBox)
  • Версия Docker: 18.06.1-ce
  • NAS: общий доступ с NFS и NFS4 или CIFS с SMB3

1 Ответ

0 голосов
/ 23 июня 2019

Я узнал, что Docker тоже делает какое-то монтирование.Я предполагаю, что будут проблемы с этими монтируемыми системами.

Мое решение состоит в том, чтобы использовать устройство уровня блока вместо монтирования iSCSI вместо файловой системы.Таким образом, все контейнеры работали как положено.

...