2017-06-27 18 views
0

私はドッカーイメージでmqttブローカーMosqittoを実行しています。 私は問題は、ホストユーザーID(1001)とということである。これは、画像フォルダ/ mosquittoにホストフォルダ/ホーム/ mosquitto /アプリケーションは/ dev/mosquittoをマウントする必要があります 次の引数ドッカーがマウントしたホストディレクトリファイルのアクセス許可

sudo docker run -d -p 1883:1883 -p 1884:1884 -v /home/mosquitto/apps/dev/mosquitto:/mosquitto --restart always -u mosquitto eclipse-mosquitto:1.4. 

を使用していますドッカーのユーザーID(100)が一致しません。

私は-u mosquittoを指定しない場合、アプリケーションは、だから私は、私がアプリケーションを作るために、-u mosquittoを指定しようと思いました

を/mosquitto/logs/mosquitto.logに書き込むことができない文句イメージ内ではユーザー1001として実行されるため、マウントされたファイルへの書き込みアクセス権があります。 それは働いた。 しかし、Mosquittoアプリケーションは終了時に新しいデータベースファイルを作成しました。そのファイルは所有者として101ユーザで作成されました。

ドッキングする人に-Uを指定するとどうなりますか? 私は期待していたこと(ホストファイルへの書き込みが許可されています)と種類が私が期待していたことをやっていませんでした(元のイメージのユーザーIDを持つファイルです)。この特定のドッカーのイメージ..それは内部的にユーザーを切り替えるいくつかのスクリプトを実行する?

答えて

0

どのユーザーのログパスへの書き込みアクセスを作成するのですか?安全性が低いかもしれません。しかし、それが単なるログであれば、ドッカーの中のアプリケーションがそれに書き込むことができます。

または、内部で権限の変更を行うために、いくつかのコマンドをコンテナに入れてください。

+0

ありがとうございました。ログファイルは大丈夫です。 データベースについては、ここで説明する別のドッカーボリュームを作成すると思います。 https://docs.docker.com/engine/tutorials/dockervolumes/ – Ivan

+0

はい、それは別のボリュームを持つのが良いでしょう、それもベースマシンからより管理しやすくなります。 – Vineeth

0

Dockerの場所としてLinuxまたはOSXを使用している場合は、セキュリティまたはファイルアクセス権の問題が考えられます。このバグレポートPermission denied for directories created automatically by Dockerfile ADD command #1295に行き、最後にジャンプしてください...あなたのソリューションを見つける可能性の高いサブバグレポートへのリンクがいくつかあります。私は非常に似た問題を抱えていて、それはselinuxの設定ミスであることが判明しました。

関連する問題