नीचे मैंने अपने एक होस्ट निर्देशिका को कंटेनर में माउंट करने के लिए किया है। यह मुश्किल है क्योंकि यह लगता है क्योंकि हम हासिल करना चाहते हैं
- कंटेनर के अंदर हमें निर्देशिका में लिखने में सक्षम होना चाहिए।
- कंटेनर के बाहर हमें कंटेनर के अंदर बनाई गई फ़ाइलों और निर्देशिकाओं को लिखने में सक्षम होना चाहिए।
ऑनलाइन विभिन्न लेखों को पढ़ने के बाद (सबसे उपयोगी एक यह गितुब मुद्दा है ), यहां बताया गया है कि मैं इसे कैसे हल करता हूं। ट्रिक को होस्ट यूजर के यूआईडी और जीआईडी को यूजर्स के यूआईडी और जीआईडी को कंटेनर के अंदर मैप करना है।
मान लीजिए कि मैं /home/breakds/projects
कंटेनर में ठीक उसी स्थान पर माउंट करने जा रहा हूं । बाहरी निर्देशिका का स्वामित्व उपयोगकर्ता के पास होता है breakds
, जिसका uid और gid होता है 1000
।
मैंने तब कंटेनर में एक उपयोगकर्ता बनाया debian
, जिसका uid और gid भी हुआ 1000
(क्योंकि यह पहला गैर रूट उपयोगकर्ता है)। मैं तब होस्ट पर एक (lxc) प्रोफाइल बनाऊंगा
lxc profile edit breakds
और नीचे प्रोफ़ाइल की सामग्री है (मेरा मानना है कि यह 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
फिर, उस कंटेनर में इस प्रोफ़ाइल को स्थायी रूप से लागू करें:
$ lxc profile apply <my container> breakds
यह काम कर जाना चाहिए।
नोट : कृपया ध्यान दें कि इस प्रोफ़ाइल पर स्विच करने से पहले, सुनिश्चित करें कि सभी direcotries या फ़ाइलें जिनके स्वामी / समूह को डेबियन हटा दिया गया है (और शायद स्विच के बाद फिर से बनाया गया है)। ऐसा इसलिए है क्योंकि यूआईडी और जीआईडी मैपिंग के बाद, उनका स्वामित्व अमान्य हो जाएगा। मैंने मूल रूप से सोचा था कि मैं सिर्फ 1000 से 1000 मैपिंग कर रहा हूं, सब कुछ ठीक होना चाहिए, लेकिन मुझे लगता है कि मैंने यहां कुछ याद किया और यह बहुत अच्छा होगा अगर कोई हैक के बिना इसे हल करने के बारे में सलाह दे सकता है।