2017-07-21 14 views
-1

Dockerコンテナを読み込んでホストディレクトリに書き込もうとしています。Dockerコンテナのマウントされたホストディレクトリにアクセスできない

は、私はコンテナを実行します。コンテナ内

docker run -it -v $(pwd):/file logstash-5.1.2 

、私は、ファイルは、ホスト上の私の(非root)ユーザーのUID、および上と同じ権限を持っている/それを見ることができますホスト:

drwxrwxrwx. 2 1156 1156 4096 Jul 21 05:00 file 

このルートは/ファイルにアクセスできません。

[email protected]:~# ls /file 
ls: cannot open directory /file: Permission denied 

私はホストと同じUIDを持つコンテナ内のユーザーの作成についての記事を読んだが、それは眉をひそめているようです。

  1. なぜディレクトリにアクセスできないのですか?私はそれがすべてをすることができると思った。
  2. Dockerで、ルートが所有していないマウントされたディレクトリに対して、コンテナの読み書きを実行する最も良い方法は何ですか?
  3. また、Rancherも使用しています。それがより簡単になりますか?私はDocker内で純粋にそれを行うことができるかどうかを確認しようとしているので、私はまだそこに何か別のものを見つけていません。
+0

これは、ホスト上で動作しているSELinuxに問題がある可能性があります。 –

+0

私は、Red Hatをホスト上で実行していることを述べておきます。 – alabaster

答えて

0

コンテキストをこのコンテキストでこのフォルダにアクセスできるようにするには、svirt_sandbox_file_tとしてコンテキストを変更する必要があります。

あなたがフォルダのアクセス許可について確信している場合は、試してみてください。

chcon -R -t svirt_sandbox_file_t /your/host/path 

試してもわからない場合は、

chown -R groupId:userId /your/host/path 
chcon -R -t svirt_sandbox_file_t /your/host/path 

ここではCHCONコマンドがsvirt_sandbox_file_tに「/あなた/ホスト/パス」のコンテキストを変更してSELinuxのコンテキストを適用します。

+0

また、audit2allowを使用してコンテキストを変更することもできます。 –

関連する問題