2017-11-09 12 views
1

マウントされたドッカーボリュームに新しいファイルを作成する際に問題があります。ドッカーマウントボリューム。許可が拒否されました

最初にインストールした後、ドッカーはドッカーグループに自分のユーザーを追加しました。私はコンテナを作成したユーザーとして/ srvの/ Redisの中のファイルを作成したいとき

docker run -d -v /srv/redis:/data --name myredis redis 

mkdir -p /srv/redis 

とコンテナを開始:私の$ USERフォルダとして作成

sudo usermod -aG docker $USER 

アクセスに問題があります。

mkdir /srv/redis/redisTest 
mkdir: cannot create directory ‘/srv/redis/redisTest’: Permission denied 

他のスレッドで検索しようとしましたが、適切な解決策が見つかりませんでした。

+0

'mkdir redisTest'を実行しようとしているユーザーは?どのグループに属するのか? – DevDio

+0

グループドッカーの@DevDioにあるredisコンテナを作成したユーザーmkdirのパスを編集しました – moviss

答えて

2

私の意見では、質問のタイトルは本当の問題を反映していません。あなたはrootからdocker run -d -v /srv/redis:/data --name myredis redisディレクトリ/srv/redis所有者の変更を実行したときので

mkdir /srv/redis/redisTest 
mkdir: cannot create directory ‘/srv/redis/redisTest’: Permission denied 

この問題は非常に可能性が発生します。これはls -lah /srv/redisで確認できます。これは外部ディレクトリをdockerにマウントした場合の通常の結果です。アクセスを回復するには、sudo chown -R $USER /srv/redisを実行する必要があります。

+0

chownのように見えますが、redisコンテナがファイルを保存するchownディレクトリに対して安全ですか? – moviss

+0

@movissそれはあなたのためにうれしいです。 – biocyberman

+0

@movissあなたの質問にお答えします。ボリューム上でドッカーを再度実行すると、一部のファイルが再度rootに再割り当てされたり、誤った所有権が原因でその中のアプリケーション(つまりredis)が失敗することさえあります。だから私は完璧な答えを持っていないというジレンマです。しかし、私が寄稿したgithub上のこのドッカーセットアップを調べて、root以外のユーザーでドッカーを実行できるようにすることもできます。それはあなたにいくつかのアイデアを与えるかもしれません:https://github.com/broadinstitute/viral-ngs-deploy/blob/master/docker。 'gosu'を使ったDockerfileとenv_wrapper.shをよく見てください。 – biocyberman

1

私は/ srv/redis/redisTestディレクトリは、ユーザーがredisコンテナ内に作成したものだと思うので、redisコンテナユーザーに属しています。

すでにls -lを使用して確認していますか?/srv/redis/redisTestディレクトリは$USER ..に属していますか?

+0

コンテナの外にディレクトリを作成したい:P – moviss

+0

yea ..しかし、それをマウントすると、/ srv/redis /コンテナによって自動的に作成されます。 。 @biocybermanのように言った。あなたが手動で作成したとしても、そのディレクトリがredisコンテナ内のルートに属している可能性が非常に高いです。 –

関連する問題