में \ डोकर छवियों में उपयोगकर्ता मैं एक प्रोग्राम है जो करने की जरूरत है स्वचालित रूप से & न्यूनतम उपयोगकर्ता इनपुट के साथ Windows पर कुछ डोकर कंटेनरों का प्रबंधन स्थापित मिल गया है।स्वचालित रूप से बढ़ते मेजबान सी के अलावा अन्य फ़ोल्डरों: विंडोज
इसे स्वचालित रूप से सेटअप डॉकर को मनमाने ढंग से विंडोज फ़ोल्डरों को माउंट करने की आवश्यकता है। इसे से पर स्थापित करने की आवश्यकता है, जहां डॉकर वीएम को नहीं बनाया जा सकता है।
डिफ़ॉल्ट रूप से डॉकर सी: \ उपयोगकर्ताओं में लगभग किसी भी फ़ोल्डर को बूट 2 डॉकर छवि में घुमाने के लिए अनुमति देगा, जो बदले में उन्हें डॉकर छवियों में घुमाने के लिए उपलब्ध कराता है।
मैं वीएम के बाहर से डिफ़ॉल्ट माउंट स्क्रिप्ट को स्वचालित रूप से संशोधित करने का एक तरीका चाहता हूं ताकि मैं अन्य फ़ोल्डरों का उपयोग कर सकूं, लेकिन "VBoxManage.exe run", copyto, आदि आदेश किसी भी में Boot2Docker पर काम नहीं करते हैं मेरे पास अन्य लिनक्स वीएम के विपरीत है।
तो, समाधान के लिए मेरी खोज में, मैंने पीई-वीबॉक्स पर ठोकर खाई, जिससे आप आसानी से वर्चुअलबॉक्स एपीआई का उपयोग कर कंसोल पर कीबोर्ड ईवेंट भेज सकते हैं। यह प्रत्यक्ष कंसोल सत्रों की भी अनुमति देता है, लेकिन वे VBoxManage.exe की तरह विफल हो जाते हैं। तो, यह मुझे क्रम में सेटअप करने के लिए एक स्क्रिप्ट है कि अतिरिक्त मात्रा माउंट होगा कीबोर्ड पर
echo command >> /c/script.sh
आदेशों के बहुत सारे भेजने के साथ समाप्त हो गया। क्या कोई बेहतर तरीका है?
किसी को भी जिसकी आवश्यकता हो सकती है, यहां पर एक बहुत ही सरल संस्करण है जो चल रहा है। पहले दो बिट पुराने हैं। बैट फाइलें, ताकि वे किसी के लिए आवेदन करें।
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
docker-machine create --driver virtualbox my-docker-vm
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" sharedfolder add "my-docker-vm" --name "c/myfolder" --hostpath "c:\myfolder" --automount
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "my-docker-vm" VBoxInternal2/SharedFoldersEnableSymlinksCreate/c/myfolder 1
फिर, डोकर वीएम आरंभ किया जाना चाहिए ...
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm --type=headless my-docker-vm
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
docker-machine env --shell cmd my-docker-vm > temp.cmd
call temp.cmd
del temp.cmd
अब में एक सरल माउंट स्क्रिप्ट लिखने के लिए अजगर स्क्रिप्ट का एक सरलीकृत संस्करण,: सबसे पहले, हमारे डोकर वीएम बनाने के लिए वी एम कुंजीपटल के माध्यम से का उपयोग कर py-vbox:
import virtualbox
script = """\n\
echo if [ ! -d /c/myfolder ] > /c/script.sh\n\
echo then >> /c/script.sh\n\
echo mkdir -p /c/myfolder >> /c/script.sh\n\
echo mount -t vboxsf c/myfolder /c/myfolder >> /c/script.sh\n\
echo fi >> /c/script.sh\n\
chmod +x /c/script.sh\n\
/bin/sh /c/script.sh\n\
rm /c/script.sh\n\
"""
my_vm_name = 'my-docker-vm'
def mount_folder():
vbox = virtualbox.VirtualBox()
is_there = False
for vmname in vbox.machines:
if str(vmname) == my_vm_name:
is_there = True
break
if is_there is False:
raise whatever
return
vm = vbox.find_machine(my_vm_name)
session = vm.create_session()
session.console.keyboard.put_keys(script)
देखें कि यह लिंक आपको http://www.incrediblemolk.com/sharing-a-windows-folder-with-the-boot2docker-vm/ में सहायता करता है या नहीं। आदेश 'vboxmanage sharedfolder' –
@ वार्मोवरफ्लो धन्यवाद, लेकिन मैंने पहले ही इस से बिल्ली को गुमराह किया है। यह समाधान सी: \ उपयोगकर्ताओं तक पहुंच को हटा देगा, और कम से कम मेरी मशीन पर नहीं, नवीनतम संस्करण पर काम नहीं कर रहा है। –
आपको उन आदेशों को वीएम से निष्पादित करने की आवश्यकता क्यों है? वीएम में आपको केवल एक चीज करने की ज़रूरत है '/ var/lib/boot2docker/bootlocal.sh' को संशोधित करना। और 'VBoxManage.exe sharedfolder add' किया जाता है जब VM बनाया जाता है लेकिन अभी तक शुरू नहीं हुआ है। http://stackoverflow.com/a/35498478/6309 – VonC