Ubah izin untuk volume bernama di Docker

Saya memiliki wadah Docker dengan volume bernama yang berjalan pada pengguna non-root dimulai dengan perintah berikut:

docker run -v backup:/backup someimage

Pada gambar, ada skrip cadangan yang mencoba menyimpan file di /backup direktori tetapi gagal. Dipasang backup volume dalam /backup dir milik pengguna root.

Cara mengubah izin untuk /backup direktori?

----- EDIT1:

mcve di bawah ini:

Jalankan kontainer docker dengan Gerrit:

docker run -v backupgerrit:/backup --name gerrit gerritcodereview/gerrit

Sekarang pada jendela terminal lain mencoba untuk menyimpan sesuatu di /backup dir:

docker exec gerrit touch /backup/testfile

Anda akan mendapatkan:

touch: cannot touch '/backup/testfile': Permission denied

Solusi kerja di sini. Docker pada pengaturan default menyimpan data volume di /var/lib/docker/volumes/. Mendasarkan pada contoh dari file pertanyaan backupgerrit bernama volume yang tetap /var/lib/docker/volumes/backupgerrit/_data. Dir penting adalah _data dan izin Nya. Dalam contoh ini, wadah Gerrit menggunakan pengguna dengan id 1000. Solusinya adalah dengan mengatur kepemilikan ini _data dir untuk 1000:1000.

# chown 1000:1000 /var/lib/docker/volumes/backupgerrit/_data# ls -ln /var/lib/docker/volumes/backupgerrit/drwxr-xr-x 2 1000 1000 4096 Feb 25 12:19 _data/

Dan ini adalah bagaimana tampilannya dari sisi wadah:

# docker psCONTAINER ID   IMAGE                     COMMAND            CREATED          STATUS          PORTS                 NAMESeaa816980be5   gerritcodereview/gerrit   "/entrypoint.sh"   31 minutes ago   Up 31 minutes   8080/tcp, 29418/tcp   gerrit# docker exec gerrit iduid=1000(gerrit) gid=1000(gerrit) groups=1000(gerrit)# docker exec gerrit ls -l / | grep backupdrwxr-xr-x   2 gerrit gerrit 4096 Feb 25 11:19 backup# docker exec gerrit touch /backup/testfile# docker exec gerrit ls -l /backuptotal 0-rw-r--r-- 1 gerrit gerrit 0 Feb 25 11:19 testfile

Izin dari _data dir gigih sampai menghapus volume dengan

# docker volume rm backupgerrit