Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何授予docker容器对映射卷的写入/chmod权限?_Docker_Permissions_Chmod_Chown_Pocketmine - Fatal编程技术网

如何授予docker容器对映射卷的写入/chmod权限?

如何授予docker容器对映射卷的写入/chmod权限?,docker,permissions,chmod,chown,pocketmine,Docker,Permissions,Chmod,Chown,Pocketmine,我有一个synology NAS,它支持docker,并希望在其上运行一些docker容器(我对docker很陌生)。例如pocketmine pm(但我相信我也有其他容器的写入问题) 我在主机上创建了一个卷,并将其映射到容器设置中。(在卷映射的synology docker设置中,我没有单击“只读”) 根据Dockerfile,在容器内创建一个新用户“pocketmine”,该用户用于启动服务器。用户似乎有用户ID 1000(新linux用户的第一个UID)。容器还使用Entrypoint.s

我有一个synology NAS,它支持docker,并希望在其上运行一些docker容器(我对docker很陌生)。例如pocketmine pm(但我相信我也有其他容器的写入问题)

我在主机上创建了一个卷,并将其映射到容器设置中。(在卷映射的synology docker设置中,我没有单击“只读”)

根据Dockerfile,在容器内创建一个新用户“pocketmine”,该用户用于启动服务器。用户似乎有用户ID 1000(新linux用户的第一个UID)。容器还使用Entrypoint.sh脚本启动服务器

最初,容器无法将文件写入映射的目录。我必须SSH到主机“chown”的UID 1000目录中:

sudo chown 1000:1000 /volXy/docker/pocketminemp -R
之后,可以下载并提取归档文件

不幸的是,我无法从iOS设备连接到服务器。服务器被列为“联机”,但连接失败,没有任何特定消息。然后,我检查了容器的日志,看到了以下条目(不确定这是否真的阻止了连接,但我会尝试一下):

显然,容器无法下载以前可以下载的文件


有人知道怎么解决这个问题吗?我需要
chmod
映射的卷吗?为什么我需要
chown
将目录添加到UID 1000(主机上不存在的用户)-没有更优雅的方法来修复权限吗?

当您运行容器时,您应该能够使用
--user=“UID:gid”
标志,指定您希望作为运行容器的用户


来源:

好的,我会检查一下,但我相信我在某个地方读到,synology不允许在运行容器时将--user标志作为参数传递,但这更像是synology的问题,而不是一般docker的问题。
[*] Everything done! Run ./start.sh to start PocketMine-MP
chown: changing ownership of '/pocketmine/entrypoint.sh': Operation not permitted
chown: changing ownership of '/pocketmine/server.properties.original': Operation not permitted
Loading pocketmine.yml...