Я новичок в докере, и у меня проблема с томами, расположенными на 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