GNU/Linux >> Tutoriels Linux >  >> Linux

Docker compose le volume Autorisations linux

Selon la référence docker-compose et docker run, le user L'option définit l'ID utilisateur (et l'ID de groupe) du processus en cours d'exécution dans le conteneur. Si vous le définissez sur 1000:1000 , votre serveur Web ne peut plus se connecter au port 80. La liaison à un port inférieur à 1024 nécessite des autorisations root. Cela signifie que vous devez supprimer le user: 1000:1000 ajouté déclaration à nouveau.

Pour résoudre le problème d'autorisation avec le volume partagé, vous devez modifier le propriétaire du répertoire. Exécutez chown 1000:1000 /path/to/volume . Cela peut être exécuté à l'intérieur du conteneur ou directement sur le système hôte. Le changement est persistant et effectif immédiatement (aucun redémarrage de conteneur requis).

En général, je pense que le volume devrait être dans un sous-répertoire, par exemple

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

Assurez-vous que le bon utilisateur possède ./public . Si vous démarrez le conteneur et que le répertoire n'existe pas, docker le crée pour vous. Dans ce cas, le répertoire appartient à root et vous devez changer de propriétaire manuellement comme expliqué ci-dessus.

Alternativement, vous pouvez exécuter le serveur Web en tant qu'utilisateur non privilégié (user: 1000:1000 ), laissez le serveur écouter sur le port 8080 et modifiez le routage vers

 ports:
    - "8080:8080"

Linux
  1. Autorisations Linux 101

  2. Qu'est-ce qu'un utilisateur Linux ?

  3. Qu'est-ce qu'Umask sous Linux

  4. Bases des autorisations de fichiers Linux

  5. Mise à niveau de Docker sur Amazon Linux AMI

Autorisations de fichiers Linux :tout ce que vous devez savoir

Premiers pas avec Docker Compose sous Linux

Comment exécuter Docker en tant qu'utilisateur non root sous Linux

Comment changer d'utilisateur sous Linux

Comment installer Docker et Docker Compose sous Linux

Autorisations de base du répertoire Linux et comment les vérifier