Docker和远程卷

Docker和远程卷,docker,volume,nfs,cifs,Docker,Volume,Nfs,Cifs,我是docker初学者,在NAS上驻留卷时遇到问题 与共享的连接工作正常。对于SMB和NFS,我可以使用fstab中的以下条目将共享装载到docker主机 <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,iochar

我是docker初学者,在NAS上驻留卷时遇到问题

与共享的连接工作正常。对于SMB和NFS,我可以使用fstab中的以下条目将共享装载到docker主机

<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

因此,我删除了fstab条目,并用给定的语法创建了卷。但这也会产生同样的效果——portainer可以工作,但其他的不行。现在我很无助,很感激每一个提示。注意:我已经测试了NFS和CIFS,但没有成功

环境包括:

Docker主机操作系统:目前在VirtualBox虚拟机中运行的Alpine Linux 3.8.2 Docker版本:18.06.1-ce NAS:与NFS和NFS4共享,或与SMB3共享CIFS
我发现Docker也在坐骑。我猜这些坐骑会有问题


我的解决方案是通过iSCSI装载而不是文件系统使用块级设备。因此,所有容器都按预期工作。

如果错误是与文件权限有关,则每个容器在创建文件时尝试使用什么uid/gid,在服务器上装载的目录上有什么权限,以及您在服务器NFS导出上配置了什么设置,例如根挤压?@BMitch非常好。在主机上,我使用root在实验阶段运行Docker和NFS装载。在NAS上-显然我错过了此设置。在您指出这一点之后,我设置了根挤压,以便将所有用户分配到特定帐户。现在,USVN容器和MariaDB容器都向我显示已经执行了非法的chown命令。非常感谢你的提示。这就回答了关于远程卷的问题。在深入到根压缩主题之后,我决定不使用nfs,而是使用cifs。反正我没有成功。这很奇怪,因为portainer/portainer正在运行,独立于NAS上的本地卷或远程卷。但是运行任何其他映像,如mariadb:10.4或kempkensteffen/usvn,都只能在本地运行。我敢肯定,远程卷不是火箭科学,但我仍然不知道如何解决我的问题。
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