2017-03-09 10 views
1

私はDockerをサポートしているsynology NASを持っていて、いくつかのDockerコンテナを使いたいと思っています。例えばpocketmine-pm(しかし、私は他のコンテナにも書き込み問題があると信じています)。マップドボリュームにdockerコンテナの書き込み/ chmodパーミッションを与える方法は?

私はホスト上にボリュームを作成し、これをコンテナ設定でマップしました。 (ボリュームマッピングのsynologyドッカーの設定では、私は「読み取り専用」をクリックしなかった)。

Dockerfileによれば、新しいユーザー 'pocketmine'がコンテナ内に作成され、このユーザーはサーバーを起動するために使用されます。ユーザーはユーザーID 1000(新しいLinuxユーザーの場合は最初のUID)を持っているようです。コンテナはまた、Entrypoint.shスクリプトを使用してサーバーを起動します。

最初に、コンテナはマップされたディレクトリにファイルを書き込めませんでした。私はホストにUID 1000のディレクトリを「chown」しなければならなかった。

sudo chown 1000:1000 /volXy/docker/pocketminemp -R 

その後、アーカイブをダウンロードして抽出することができた。

残念ながら、私はiOSデバイスからサーバーに接続できませんでした。サーバーは「オンライン」としてリストされていますが、接続は特定のメッセージなしで失敗します。どうやらコンテナはそれが以前にできたファイルをchownをすることはできません

[*] 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... 

:(これは実際に接続を防止するが、私はそれを試してみるかどうかわからない)私は、次のエントリを、コンテナのログをチェックして見ましたダウンロード。

これを修正するために何ができるのか誰かが知っていますか?私はchmodにマップされたボリュームを必要とするのですか?なぜ、chownのUID 1000(本当にホストに存在しないユーザー)へのディレクトリが必要でしたか?アクセス許可を修正するよりエレガントな方法はありませんか?

答えて

2

コンテナを実行するときに、--user="uid:gid"フラグを使用してコンテナを実行するユーザーを指定する必要があります。

出典:https://docs.docker.com/engine/reference/run/#user

+1

OKは、これをチェックしますが、私はSYNOLOGYは、コンテナを実行するときにパラメータとして--userフラグを渡すことができないことをどこかで読んと信じている - しかし、それはより多くのSynology問題です一般的なドッカーの問題。 – Patric

関連する問題