我在使用Docker Compose将WD MyCloud EX2 NAS作为Nextcloud和MariaDB容器组合的NFS共享安装时遇到问题。运行docker-compose up -d
时,出现以下错误:
Creating nextcloud_app_1 ... error
ERROR: for nextcloud_app_1 Cannot create container for service app: b"error while mounting volume with options: type='nfs' device=':/mnt/HD/HD_a/nextcloud' o='addr=192.168.1.73,rw': permission denied"
ERROR: for app Cannot create container for service app: b"error while mounting volume with options: type='nfs' device=':/mnt/HD/HD_a/nextcloud' o='addr=192.168.1.73,rw': permission denied"
ERROR: Encountered errors while bringing up the project.
这里是docker-compose.yml
(所有敏感信息都替换为<
括号>
:
Version: '2'
volumes:
nextcloud:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.73,rw
device: ":/mnt/HD/HD_a/nextcloud"
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=<****>
- MYSQL_PASSWORD=<****>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- NEXTCLOUD_ADMIN_USER=<****>
- NEXTCLOUD_ADMIN_PASSWORD=<****>
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
我通过SSHd进入NAS框中以检查/ etc / exports,并且确定是使用all_squash
,所以我更改了它。
这是NAS盒上的/ etc / exports文件:
"/nfs/nextcloud" 192.168.1.73(rw,no_root_squash,sync,no_wdelay,insecure_locks,insecure,no_subtree_check,anonuid=501,anongid=1000)
"/nfs/Public" 192.168.1.73(rw,no_root_squash,sync,no_wdelay,insecure_locks,insecure,no_subtree_check,anonuid=501,anongid=1000)
然后,我用exportfs -a
什么都没改变-docker-compose抛出相同的错误。每次尝试构建时,我都会删除所有容器和图像,然后重新下载图像。
我已经阅读了类似的问题,并做了我能想到的一切。我也知道这是一个容器问题,因为多亏了/etc/fstabs
中的设置,我可以从命令行非常愉快地访问NFS共享。
我还要在这里做什么?
答案 0 :(得分:0)
尝试使用命令行ini nextcloud文件夹“ ls -l / var / www / html”进行检查,查看可以访问它的组和用户
答案 1 :(得分:0)
我通过删除NAS框的anonuid=501,anongid=1000
文件中的/etc/exports
项来修复它,并且还设法输入了错误的IP-NAS框未授予对Ubuntu计算机的访问权限尝试与其连接。
答案 2 :(得分:0)
在我们的例子中,我们在 docker 主机上本地安装 nfs 卷,然后在容器内安装文件夹。
我们运行的是 oracle-linux 7,启用了 SElinux。 我们通过在 fs_mntops 块中的 /etc/fstab 中添加以下参数来修复(参见 https://man7.org/linux/man-pages/man5/fstab.5.html):
defaults,context="system_u:object_r:svirt_sandbox_file_t:s0"