GNU/Linux >> Belajar Linux >  >> Linux

Menjalankan buruh pelabuhan di Ubuntu:volume host yang dipasang tidak dapat ditulis dari wadah

Jika uid Anda pada host (id -u ) tidak sama dengan uid pengguna dalam wadah buruh pelabuhan (sering "buruh pelabuhan") maka Anda dapat mengalami masalah ini. Anda dapat mencoba:

  1. Menjadikan UID sama antara pengguna Anda dan pengguna di wadah buruh pelabuhan.
  2. Menyetel izin grup pada direktori agar dapat ditulisi untuk grup tempat Anda dan buruh pelabuhan berada.
  3. Anda juga dapat menggunakan opsi nuklir:

chmod a+rwx -R project-dir/

Opsi nuklir akan membuat git Anda ruang kerja kotor, yang akan sangat mengganggu Anda, jadi bukan solusi jangka panjang terbaik. Itu menghentikan pendarahan.

Untuk lebih memahami masalahnya, Anda mungkin menemukan ini berguna:

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

Jawaban baru:

Pertanyaan ini tampaknya memiliki banyak lalu lintas dan ada solusi yang lebih baik yang tersedia sekarang - fixuid, seperti namanya, ini adalah eksekusi ajaib untuk mengubah uid &gid pengguna penampung pada permulaan penampung (menggunakan -u someone:somebody).

Untuk penjelasan lebih mendalam, lihat:https://boxboat.com/2017/07/25/fixuid-change-docker-container-uid-gid/

Jawaban lama:

Pada docker versi 1.7 Anda memiliki opsi untuk me-mount direktori host dengan izin ke container menggunakan flag :Z atau :z seperti:

docker run -v ./api:/usr/src/app:Z
  • :z - akan menambahkan izin ke semua kontainer menggunakan label 'svirt_sandbox_file_t'
  • :Z - hanya akan menambahkan izin ke label penampung saat ini

Pada docker-compose v1.4.0, Anda dapat menggunakannya di docker compose seperti ini:

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

Meskipun saya harus menambahkan, saya masih memiliki beberapa masalah dengan ini (lihat Menambahkan izin ke direktori Host dengan komposisi docker).

Referensi:

Menggunakan Volume dengan Docker dapat Menyebabkan Masalah dengan SELinux - http://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/

Panduan pengguna Docker -https://docs.docker.com/engine/userguide/dockervolumes/#volume-labels

Docker-compose catatan rilis untuk v1.4.0 - https://github.com/docker/compose/releases/tag/1.4.0


Linux
  1. Cara membuat gambar khusus dari wadah Docker

  2. Cara Mengakses Namespace Jaringan Docker Container dari Host

  3. Volume file tunggal dipasang sebagai direktori di Docker

  1. Volume Docker tidak memasang file apa pun

  2. Menjalankan OpenSSH di Alpine Docker Container

  3. Apa PID di host, dari proses yang berjalan di dalam container Docker?

  1. lsb_release:perintah tidak ditemukan di wadah Docker Ubuntu terbaru

  2. OS mana yang berjalan di wadah Docker saya?

  3. Tidak ada konektivitas jaringan ke/dari wadah Docker CE di CentOS 8