[解決済み] Docker compose ボリューム パーミッション linux
質問
ワードプレスをドッカーコンテナで実行しようとしたところ
docker-compose.yaml
ファイルがあります。
version: "2"
services:
my-wpdb:
image: mariadb
ports:
- "8081:3306"
environment:
MYSQL_ROOT_PASSWORD: ChangeMeIfYouWant
my-wp:
image: wordpress
volumes:
- ./:/var/www/html
ports:
- "8080:80"
links:
- my-wpdb:mysql
environment:
WORDPRESS_DB_PASSWORD: ChangeMeIfYouWant
docker 構造体を構築すると、ボリュームはマウントされますが、root に所属しています。
で変更しようとしたのですが
my-wp:
image: wordpress
user: 1000:1000 # added
volumes:
- ./:/var/www/html
ports:
- "8080:80"
links:
- my-wpdb:mysql
environment:
WORDPRESS_DB_PASSWORD: ChangeMeIfYouWant
これで、ファイルの編集ができるようになりました。しかし、その後、コンテナはもうウェブサイトを提供しません。
このパーミッションの問題を解決する正しい方法は何でしょうか?
どのように解決するのですか?
によると
ドッカーコンポーズ
と
ドッカーラン
を参照すると
user
オプションは、コンテナ内で動作しているプロセスのユーザーID(およびグループID)を設定します。もし、これを
1000:1000
この場合、Webサーバーは80番ポートにバインドすることができなくなります。1024以下のポートにバインドする場合は、root権限が必要です。つまり、追加した
user: 1000:1000
を再度記述してください。
共有ボリュームのパーミッションの問題を解決するには、ディレクトリの所有権を変更する必要があります。実行する
chown 1000:1000 /path/to/volume
. これは、コンテナ内部で実行することも、ホストシステムで直接実行することもできます。変更は永続的で、すぐに有効になります(コンテナの再起動は必要ありません)。
一般的には、ボリュームはサブディレクトリにするのが良いと思います、例えば
volumes:
- ./public:/var/www/html
正しいユーザーが
./public
. コンテナを起動してもディレクトリが存在しない場合、dockerが作成してくれます。この場合、ディレクトリの所有者は
root
で、上記の説明のように手動で所有権を変更する必要があります。
または、非特権ユーザーとしてウェブサーバーを実行することもできます (
user: 1000:1000
に変更し、ポート 8080 をリッスンするようにし、ルーティングを
ports:
- "8080:8080"
関連
-
[解決済み] Linuxのシェルでwebsocketの応答を読み取る方法
-
[解決済み] sudoとnohupを連動させる
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ssh "パーミッションが開きすぎています "エラー
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] Docker-Composeを使用して、複数のコマンドを実行する方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Linuxのdocker-composeでパーミッションが拒否されました【終了】。
-
[解決済み】PytorchがCUDAは利用できないと言う件
-
[解決済み] Ubuntuにchkconfigをインストールするにはどうしたらいいですか?
-
[解決済み] at&tアセンブリの「push」と「pushq」の違いは何ですか?
-
[解決済み] という記号がありますが、これはどういう意味ですか?
-
[解決済み] rm -rfを元に戻すには?[クローズド]
-
[解決済み] STRACEがEAGAINを表示する理由(リソースが一時的に使用できないため)
-
[解決済み] Linux/Ubuntu のセットです。不正なオプション -o pipefail
-
[解決済み] Nautilusのようにコマンドラインからマウントする方法とは?[クローズド]です。
-
[解決済み] Solaris では lsof -i が相当します。