Di bawah ini adalah apa yang telah saya lakukan untuk me-mount salah satu direktori host saya ke wadah. Ini lebih sulit daripada kedengarannya karena kami ingin mencapainya
- Di dalam wadah kita harus bisa menulis ke direktori.
- Di luar wadah kita harus bisa menulis ke file dan direktori yang dibuat di dalam wadah.
Setelah membaca berbagai artikel online (yang paling bermanfaat adalah masalah github ini ), inilah cara saya menyelesaikannya. Caranya adalah dengan memetakan uid dan gid dari pengguna host ke uid dan gid dari pengguna di dalam wadah.
Misalkan saya akan me /home/breakds/projects
- mount ke lokasi yang sama persis di wadah. Direktori luar dimiliki oleh pengguna breakds
, yang memiliki uid dan gid 1000
.
Saya kemudian membuat pengguna dalam wadah yang disebut debian
, yang uid dan gid kebetulan 1000
juga (karena itu adalah pengguna non root pertama). Saya kemudian akan membuat profie (lxc) di host oleh
lxc profile edit breakds
Dan di bawah ini adalah isi dari profil (saya percaya itu dalam format yaml):
name: breakds
config:
raw.lxc: |
lxc.id_map =
lxc.id_map = u 0 165536 999
lxc.id_map = g 0 165536 999
lxc.id_map = u 1000 1000 1
lxc.id_map = g 1000 1000 1
lxc.id_map = u 1001 166537 64535
lxc.id_map = g 1001 166537 64535
user.vendor-data: |
packages:
- bash
description: allow home dir mounting for breakds
devices:
eth0:
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
projects:
path: /home/breakds/projects
source: /home/debian/projects
type: disk
Kemudian, terapkan profil ini ke wadah itu secara permanen:
$ lxc profile apply <my container> breakds
Ini harus melakukan trik.
CATATAN : Harap dicatat bahwa sebelum beralih ke profil ini, pastikan bahwa semua direcotries atau file yang pemilik / grupnya debian harus dihapus (dan mungkin dibuat kembali setelah beralih). Ini karena setelah pemetaan uid dan gid, kepemilikan mereka akan menjadi tidak valid. Saya awalnya berpikir karena saya hanya memetakan 1000 hingga 1000 semuanya harus baik-baik saja, tapi saya pikir saya melewatkan sesuatu di sini dan akan lebih bagus jika seseorang dapat memberi saran tentang bagaimana menyelesaikan ini tanpa hack.