docker
Ubuntu 20.04 をセットアップしていたときに、Docker もインストールすることを選択しました。グループを作成してユーザーを追加した以外は、設定に何も変更していません (つまり、Docker は root として実行されると思います) 。
私のコンテナは にデータを保存します/home/docker
。 フォルダに FTP してファイルを追加/編集できるようにするために、すべてのサブフォルダの所有権を に変更しましたmyuser:myuser
。その結果、今朝 SQL が正しく機能しなくなりました。最終的に、所有権を に復元する必要があると判断しroot:root
、phpMyAdmin を使用してすべてのデータベースとテーブルを表示できるようになりました。
しかし、DBeaver を使用して接続しようとすると、次のようなエラーが繰り返し発生します。
'./database1/' のディレクトリを読み取れません (エラー番号: 13 "権限が拒否されました")
すべてのコンテナが適切に機能し、FTP でファイルを編集できるようにするために、docker フォルダの権限を設定する最適な方法と、他にどのような設定を変更する必要があるかを教えてください。
ありがとう!
答え1
コンテナには、コンテナ内で使用されるユーザーのディレクトリの所有権が必要です。これはイメージによって異なりますが、コンテナは分離されているため、すべての作成者がコンテナ内で使用するユーザーを選択できます。
実行すると、docker inspect containername
構成に次の内容が表示されます。
"Config": {
"User": "1001:1002",
この場合、コンテナ内のアプリケーションは、ユーザー 1001 とグループ 1002 で実行されます。そのためには、chown 1001:1002
コンテナにボリュームとしてマウントするフォルダーで実行する必要があります。
の値User
が空の場合、root として実行されます。その場合、権限は関係ありません。