如何授予docker容器对映射卷的写入/chmod权限?
我有一个synology NAS,它支持docker,并希望在其上运行一些docker容器(我对docker很陌生)。例如pocketmine pm(但我相信我也有其他容器的写入问题) 我在主机上创建了一个卷,并将其映射到容器设置中。(在卷映射的synology docker设置中,我没有单击“只读”) 根据Dockerfile,在容器内创建一个新用户“pocketmine”,该用户用于启动服务器。用户似乎有用户ID 1000(新linux用户的第一个UID)。容器还使用Entrypoint.sh脚本启动服务器 最初,容器无法将文件写入映射的目录。我必须SSH到主机“chown”的UID 1000目录中:如何授予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
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...