【发布时间】:2017-07-31 00:58:02
【问题描述】:
我有一个支持 docker 的 Synology NAS,我想在上面运行一些 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 设备连接到服务器。服务器被列为“在线”,但连接失败,没有任何特定消息。然后我检查了容器的日志并看到了以下条目(不确定这是否真的阻止了连接,但我会试一试):
[*] 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...
显然,容器无法 chown 之前能够下载的文件。
有人知道可以做些什么来解决这个问题吗?我需要chmod 映射的卷吗?为什么我需要chown 到 UID 1000 的目录(主机上不存在的用户) - 没有更优雅的方法来修复权限?
【问题讨论】:
标签: docker permissions chmod chown pocketmine