GNU/Linux >> Linux の 問題 >  >> Linux

Docker コンポーズ ボリューム アクセス許可 linux

docker-compose および docker run リファレンスによると、 user オプションは、コンテナーで実行されているプロセスのユーザー ID (およびグループ ID) を設定します。これを 1000:1000 に設定すると 、Web サーバーはポート 80 にバインドできなくなりました。 1024 未満のポートにバインドするには、ルート権限が必要です。これは、追加された user: 1000:1000 を削除する必要があることを意味します

共有ボリュームの権限の問題を解決するには、ディレクトリの所有権を変更する必要があります。 chown 1000:1000 /path/to/volume を実行 .これは、コンテナー内で実行することも、ホスト システム上で直接実行することもできます。変更は永続的で、すぐに有効になります (コンテナーを再起動する必要はありません)。

一般に、ボリュームはサブディレクトリにある必要があると思います。たとえば、

  volumes:
    - ./public:/var/www/html

正しいユーザーが ./public を所有していることを確認してください .コンテナーを開始したときにディレクトリーが存在しない場合は、docker によって作成されます。この場合、ディレクトリは root が所有しています 上記で説明したように、所有権を手動で変更する必要があります。

または、特権のないユーザー (user: 1000:1000) として Web サーバーを実行することもできます。 )、サーバーにポート 8080 でリッスンさせ、ルーティングを次のように変更します

 ports:
    - "8080:8080"

Linux
  1. Linuxの権限101

  2. Linuxファイルパーミッションの基本

  3. Amazon Linux AMI での Docker のアップグレード

  1. Linuxユーザーとは何ですか?

  2. LinuxのUmaskとは

  3. Linuxsuコマンド

  1. Linuxパーミッションのビギナーズガイド

  2. Linuxファイルのアクセス許可について

  3. ドキュメントのroot権限を持つLinuxユーザーを追加します