GNU/Linux >> Linux Esercitazione >  >> Linux

Esecuzione della finestra mobile su Ubuntu:il volume host montato non è scrivibile dal contenitore

Se il tuo uid sull'host (id -u ) non è uguale a uid dell'utente nel contenitore docker (spesso "docker") allora puoi avere questo problema. Puoi provare:

  1. Rendere gli UID uguali tra il tuo utente e l'utente nel contenitore docker.
  2. Impostazione delle autorizzazioni di gruppo sulla directory in modo che siano scrivibili per un gruppo a cui appartenete sia voi che docker.
  3. Potresti anche usare l'opzione nucleare:

chmod a+rwx -R project-dir/

L'opzione nucleare renderà il tuo git spazio di lavoro sporco, che ti infastidirà molto, quindi non è la migliore soluzione a lungo termine. Ferma l'emorragia comunque.

Per comprendere meglio il problema, potrebbero esserti utili:

  1. https://github.com/docker/docker/issues/7906
  2. https://github.com/docker/docker/issues/7198

Nuova risposta:

Questa domanda sembra avere molto traffico e ora è disponibile una soluzione migliore:fixuid, come suggerisce il nome, è un eseguibile magico per modificare l'uid e il gid dell'utente del contenitore all'avvio del contenitore (usando -u qualcuno:qualcuno).

Per una spiegazione più approfondita vedi:https://boxboat.com/2017/07/25/fixuid-change-docker-container-uid-gid/

Vecchia risposta:

A partire dalla versione docker 1.7 hai la possibilità di montare una directory host con autorizzazioni su un contenitore utilizzando i flag :Z o :z in questo modo:

docker run -v ./api:/usr/src/app:Z
  • :z - aggiungerà autorizzazioni a tutti i contenitori utilizzando l'etichetta 'svirt_sandbox_file_t'
  • :Z - aggiungerà autorizzazioni solo all'etichetta del contenitore corrente

A partire da docker-compose v1.4.0, puoi usarlo in docker compose in questo modo:

volumes:
   - ./api:/usr/src/app:Z

Anche se dovrei aggiungere, ho ancora alcuni problemi con questo (vedi Aggiunta di autorizzazioni alla directory host con docker-compose).

Riferimenti:

L'utilizzo di volumi con Docker può causare problemi con SELinux - http://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/

Guida per l'utente di Docker -https://docs.docker.com/engine/userguide/dockervolumes/#volume-labels

Note sulla versione di Docker-compose per v1.4.0 - https://github.com/docker/compose/releases/tag/1.4.0


Linux
  1. Come creare un'immagine personalizzata da un contenitore Docker

  2. Cosa c'è all'interno di un'immagine/contenitore Docker?

  3. Impossibile esporre un volume basato su fusibile a un contenitore Docker

  4. Docker in Docker non può montare il volume

  5. gdb non raggiunge alcun punto di interruzione quando lo eseguo dall'interno del contenitore Docker

Aggiorna Ubuntu all'interno di Docker dal 14.04 al 16.04 utilizzando l'aggiornamento del rilascio?

Come ottenere l'indirizzo IP di un contenitore Docker dall'host

Come creare un'immagine Docker da un contenitore in esecuzione

Esecuzione di OpenSSH in un contenitore Docker alpino

Qual è il PID nell'host, di un processo in esecuzione all'interno di un contenitore Docker?

Quale sistema operativo è in esecuzione nel mio container Docker?