क्या आप नए विंडोज 10 (उबंटू) बैश यूजर्स पर मूल रूप से डॉकर चला सकते हैं?


126

मेरी समझ यह थी कि अन्य ओएस पर चलने वाले डॉकटर की प्राथमिक सीमा लिनक्स नेटवर्क कंटेनर थी जो इसे संभव बनाती थी। (निश्चित रूप से मैक के लिए)।

हाल ही में माइक्रोसॉफ्ट ने विंडोज 10. पर मूल रूप से चलने वाले उबंटू लिनक्स यूजर मोड के बीटा की घोषणा की । यह विंडोज पर ईएलएफ प्रारूप में संकलित बायनेरिज़ को चला सकता है (साइबरविन के विपरीत जिसे संकलन की आवश्यकता होती है।)

मेरा प्रश्न है: क्या आप नए विंडोज 10 (उबंटू) बैश यूजर्स पर मूल रूप से डॉकर चला सकते हैं?


4
यह "सिर्फ" नहीं है bash। यह एक वास्तविक, काफी पूर्ण लिनक्स यूजरस्पेस है, लेकिन बिना एक्स विंडोज यानी केवल पाठ के। "बाश" कहना पाठ-केवल सीमा को अच्छी तरह से
संचारित करता है

क्या मैं कुछ भुल गया? क्या यह वास्तव में वितरित किया गया था? फिलहाल मैं इसे केवल वाष्प के रूप में जानता हूं।
माइकल हैम्पटन

2
मुझे लगता है कि यह स्पष्ट नहीं किया जाएगा जब तक वे जारी इस (AFAIK यह भी नहीं उपलब्ध खिड़कियों के अंदरूनी सूत्रों के रूप में अभी तक है) लेकिन यह ध्यान देने योग्य बात है कि माइक्रोसॉफ्ट और डोकर देशी रूप Windows के लिए डोकर लाने, विंडोज सर्वर 2016 के साथ जारी किया जा करने के लिए काम कर रहे हैं लायक है
Rоry मैककिन

1
@ RоryMcCune: दिलचस्प। हालांकि, अगस्त 2015 से इस डॉकर ब्लॉग प्रविष्टि के अनुसार , यह एक पोर्ट होगा जो डॉकर को विंडोज पर विंडोज छवियों को चलाने की अनुमति देता है , न कि विंडोज पर लिनक्स छवियों को।
सिल्के

2
वास्तव में यही उद्देश्य है कि विंडोज देशी डॉकटर।
कंटेनराइजेशन

जवाबों:


103

आप इंजन के रूप में विंडोज के लिए डॉकर डेस्कटॉप का उपयोग कर सकते हैं और लिनक्स के लिए डॉकर उबंटू में डब्लूएसएल पर क्लाइंट के रूप में / विंडोज पर डेबियन कर सकते हैं। उन्हें टीसीपी के माध्यम से कनेक्ट करें।

विंडोज के लिए डॉकटर डेस्कटॉप स्थापित करें: https://hub.docker.com/editions/community/docker-ce-desktop-windows यदि आप लिनक्स के बजाय विंडोज कंटेनरों का उपयोग करना चाहते हैं, तो दोनों प्रकार के कंटेनरों को लिनक्स आईएएस क्लाइंट द्वारा प्रबंधित किया जा सकता है। उपयोगकर्ताओं को मारना।

संस्करण 17.03.1-ce-win12 (12058) के बाद से आपको टीसीपी पर एक्सपोज़ डेमॉन की जांच करनी चाहिए : // लोकलहोस्ट: 2375 टीएलएस के बिना लिनक्स डॉकर क्लाइंट को टीसीपी के साथ विंडोज डोकर डेमॉन के साथ संवाद जारी रखने की अनुमति देने के लिए।

इन कदमों का अनुसरण करें:

cd
wget https://download.docker.com/linux/static/stable/`uname -m`/docker-19.03.1.tgz
tar -xzvf docker-*.tgz
cd docker
./docker -H tcp://0.0.0.0:2375 ps

या

env DOCKER_HOST=tcp://0.0.0.0:2375 ./docker ps

इसे स्थायी बनाने के लिए:

mkdir ~/bin
mv ~/docker/docker ~/bin

.Bashrc में संबंधित चर जोड़ें

export DOCKER_HOST=tcp://0.0.0.0:2375
export PATH=$PATH:~/bin

बेशक, आप डॉक-कंपोज़ स्थापित कर सकते हैं

sudo -i
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

या अजगर पाइप का उपयोग कर

sudo apt-get install python-pip bash-completion
sudo pip install docker-compose

और बैश पूरा। सबसे अच्छी बात:

sudo -i
apt-get install bash-completion
curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker > /etc/bash_completion.d/docker
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

मैंने इसे हाइपर-वी का उपयोग कर डॉक डेस्कटॉप के 2.1.0.1 (37199) संस्करण का उपयोग करके परीक्षण किया है:

$ docker version
Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89e8a
 Built:             Thu Jul 25 21:17:37 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89
  Built:            Thu Jul 25 21:17:52 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
Look both client and server say **OS/Arch: linux/amd64**

वॉल्यूम

वॉल्यूम जोड़ते समय ध्यान रखें। डब्ल्यूएसएल पर और डॉक इंजन के रूप में मार्ग C:\dirदिखाई देगा । आप इसे स्थायी रूप से दूर कर सकते हैं:/mnt/c/dir/c/dir/

sudo bash -c "echo -e '[automount] \nroot = /'>/etc/wsl.conf"

Wsl.conf में परिवर्तन करने के बाद आपको WSL से बाहर निकलना और पुनः लोड करना होगा ताकि WSL लॉन्च पर आपके परिवर्तनों को पढ़ ले।

अपडेट करें

से: विंडोज 10 संस्करण 1803 में कमांड लाइन के लिए नया क्या है

यूनिक्स सॉकेट्स यूनिक्स सॉकेट विंडोज पर समर्थित नहीं थे, और अब वे हैं! आप विंडोज और डब्लूएसएल के बीच यूनिक्स सॉकेट पर भी संवाद कर सकते हैं। इसके बारे में महान चीजों में से एक यह है कि डब्ल्युएसएल डॉकटर क्लाइंट को विंडोज पर चलने वाले डॉकर डेमन के साथ बातचीत करने के लिए डब्ल्यूएसएल को चलाने में सक्षम बनाता है।

अपडेट करें

यह स्क्रिप्ट और यूनिक्स सॉकेट्स का उपयोग पेंग्विन के पेंग्विन-सेटअप में शामिल था ।

सादर


3
नमस्कार @ joel-pearson, docker के दो भाग हैं: इंजन और क्लाइंट। इंजन डॉकर टूलबॉक्स (वर्चुअलबॉक्स आधारित) या विंडोज के लिए डॉकर (हाइपर-वी आधारित) का उपयोग करते हुए दोनों आधिकारिक तौर पर डॉक टीम द्वारा समर्थित है। डॉक इंजन बाश उपयोगकर्ता स्थान में अभी तक नहीं चला है। विंडोज़ में डॉकर क्लाइंट को cmd, पॉवर्सशेल या साइबरविन में चलाया जा सकता है। यह उत्तर क्या कहता है कि उपयोगकर्ताओं को बैश उपयोगकर्ताओं में docker क्लाइंट को चलाने का तरीका है। क्यों? व्यक्तिगत रूप से मैं बैश को पसंद करता हूं, पूरा करने वाले काम। मैं इस बात से सहमत हूं कि प्रश्न डॉक इंजन के बारे में है, लेकिन मुझे यह तब मिला जब मैं ग्राहक की तलाश में था, और बहुत से लोग ऐसा ही करते हैं।
कार्लोस राफेल रामिरेज़

1
मैंने अभी इसका परीक्षण किया है और यह मेरे लिए १.१२ पर काम करता है :) सुपर उत्साहित अब खिड़कियों पर कुछ गंभीर विकास करने में सक्षम है।
ज़च रसेल

2
विंडोज पर उबंटू के बाश में आपके निर्देशों की कोशिश की, "डॉकर डेमॉन से कनेक्ट नहीं किया जा सकता है। क्या इस मेजबान पर डॉकटर डेमन चल रहा है?"। क्या आप कुछ चरणों को याद कर रहे हैं?
एमपैन

5
फरवरी 2017 तक, यह अभी भी एकमात्र तरीका है।
एचडीवी

3
जून 2017 के बाद, आप बैश शेल से विंडोज़ एक्ज़ीक्यूटेबल्स के लिए डॉक चला सकते हैं । Docker क्लाइंट को स्थापित करने के बजाय आप docker.exeसीधे docker सबसिस्टम को क्वेरी / इंटरैक्ट करने के लिए उपयोग कर सकते हैं । हालांकि, ध्यान दें कि विंडोज़ के लिए docker विंडोज़ वेरिएबल और कॉन्फ़िगरेशन का उपयोग करेगा।
Jaime

51

अभी (अप्रैल 2016) का उत्तर है:

हम अभी तक नहीं जानते हैं (लेकिन शायद नहीं)।

तथ्यों

  • विंडोज 10 अब कई लिनक्स प्रोग्राम चला सकता है (उनमें बैश शेल और विभिन्न टेक्स्ट यूटिलिटीज)। ये पोर्ट नहीं हैं (यानी पुन: संकलित संस्करण, जैसे कि साइगविन में ), वे वही ईएलएफ बायनेरिज़ हैं जो एक विशिष्ट लिनक्स सिस्टम पर चलते हैं। इस मामले में, उन्हें उबंटू से लिया गया था।
  • इसे संभव बनाने के लिए, विंडोज 10 को लिनक्स सिस्टम कॉल (syscalls) को स्वीकार करने के लिए संशोधित किया गया था, और ELF बायनेरिज़ को लोड करने और चलाने में सक्षम होने के लिए ( स्कॉट हैंसेलमैन द्वारा टिप्पणी )। इसका मतलब यह है कि अनअमोडिफाइड लिनक्स एक्ज़ीक्यूटेबल्स चलाए जा सकते हैं, वे अपनी असम्बद्ध साझा लाइब्रेरियों को आवश्यकतानुसार लोड करेंगे, और विंडोज़ उन्हें विंडोज़ प्रक्रियाओं के रूप में चलाएगा।
  • जब भी ऐसा कोई लिनक्स प्रोग्राम कर्नेल के साथ इंटरैक्ट करना चाहता है, तो यह एक सिस्टम कॉल जारी करता है (या किसी लाइब्रेरी को करने देता है)। यह (संभवतः) लिनक्स पर चलने का एकमात्र अंतर है: लिनक्स पर चलने पर, लिनक्स कर्नेल थेल्स कॉल को संभालता है; विंडोज 10 पर, विंडोज 10 कर्नेल इसके बजाय करता है।

अटकलें

तो सवाल यह है कि क्या डॉकटर को (चुरोट और नेमस्पेस के लिए, अन्य चीजों के अलावा) सीस्कल्स को लागू किया गया था या नहीं। इसका उत्तर संभवतः "नहीं" है। डॉकर को प्रक्रिया और संसाधन प्रबंधन, और प्रक्रिया अलगाव के लिए काफी परिष्कृत (और लिनक्स-विशिष्ट) कार्यक्षमता की आवश्यकता होती है। हालांकि विंडोज पर यह सब करना संभव है, यह बहुत काम आएगा, और चूंकि इस विंडोज फीचर का लक्ष्य लिनक्स यूजरस्पेस प्रोग्राम चला रहा है, ऐसा लगता है कि वे सभी काम नहीं करते थे (और इसे गुप्त रखा था) ।

हालाँकि, अभी तक कोई निश्चित जानकारी नहीं है, जहाँ तक मैं बता सकता हूँ।

मौजूदा डॉकटर बंदरगाह

बेशक, अगर Microsoft यह निर्णय लेता है कि वे विंडोज 10 में डॉकटर का समर्थन चाहते हैं, तो वे संभवतः इसे पेश करने में सक्षम होंगे। डॉकर को एक अलग कर्नेल में पोर्ट करने के लिए कुछ मिसाल दी गई है:

  • वहाँ एक है FreeBSD के लिए डोकर बंदरगाह । यह "प्रयोगात्मक" लेबल है, लेकिन सिद्धांत रूप में काम करने के लिए लगता है। यह डॉकर रिपॉजिटरी से अनमॉडिफाइड डॉकटर कंटेनरों का उपयोग कर सकता है, जिसका अर्थ है कि यह वास्तव में छवियों के लिए लिनक्स जैसा होस्ट वातावरण प्रदान करता है।
  • Docker को Windows (विशेष रूप से, Windows Server 2016) में पोर्ट करने के लिए एक परियोजना चल रही है - अगस्त 2015 से इस डॉकर ब्लॉग प्रविष्टि को देखें । हालांकि, उपरोक्त FreBSD पोर्ट के विपरीत, यह एक ऐसा पोर्ट होगा जो Docker को विंडोज़ के साथ विंडोज चित्र चलाने की अनुमति देता है। विंडोज पर लिनक्स इमेज नहीं। इस बात की ओर इशारा करने के लिए रॉरी मैककिन का शुक्रिया।

1
अद्यतन: MSDN ब्लॉग पर अब इस विषय पर एक लेख है: लिनक्स अवलोकन के लिए विंडोज सबसिस्टम
सिल्के

आज तक यह हाइपर- V के साथ संभव है: tutorials.ubuntu.com/tutorial/…
Nick Sweeting

मैंने केवल इसलिए अपमानित किया क्योंकि उच्च मतदान वाला उत्तर अधिक उपयोगी है और फिर क्या हो सकता है, इसकी अटकलें हैं कि यह क्या है।
जेम्स

13

पहला अंदरूनी सूत्र पूर्वावलोकन कल जारी किया गया था। मैंने docker को स्थापित करने का प्रयास किया है, लेकिन यह निम्नलिखित के साथ विफल है: डॉकटर असफल

तो यह प्रतीत होता है, कि पहले पूर्वावलोकन के लिए यह वर्तमान में काम नहीं करता है। हालांकि, जैसा कि कई लोगों ने अनुमान लगाया है, यह भविष्य के रिलीज में काम कर सकता है।


5
वास्तव में यह प्रयास करने के लिए अच्छा विचार है। एक बात: क्या आप स्क्रीनशॉट को वास्तविक पाठ के रूप में जोड़ सकते हैं (Ubuntu टर्मिनल कॉपी और पेस्ट का समर्थन करता है)। 'रियल' पाठ कई फायदे (पढ़ने में आसान, खोज इंजन द्वारा, स्क्रीन रीडर का समर्थन करता है क्रॉल किया जा सकता है)
sleske

कुछ अपडेट: मैं अपनी मशीन पर अंतिम वर्षगांठ अद्यतन चलाने के लिए पूरी तरह से डॉक स्थापित करने में सक्षम हूं। लेकिन docker psफेल होना:Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: setsockopt: invalid argument. Are you trying to connect to a TLS-enabled daemon without TLS?
कुमारहर्ष

ऐसा लगता है कि यह अब काम करता है: tutorials.ubuntu.com/tutorial/…
निक स्वीटिंग

13

नहीं, यह संभव नहीं है।

कंटेनर चलाने के लिए डॉकर को कई चीजों की जरूरत होती है:

  • chroot
  • इसके लिए नाम स्थान:
    • पीआईडी
    • उपयोगकर्ता
    • नेटवर्क
    • माउंट
    • UTS
    • भारतीय दंड संहिता

ये सभी कर्नेल विशेषताएं हैं जो लिनक्स में कार्यान्वित की जाती हैं। दुर्भाग्य से, उनमें से अधिकांश में प्रतिस्थापन के रूप में उपयोग करने के लिए विंडोज में एक समान सुविधा नहीं है (न ही लिनक्स सबसिस्टम में जो माइक्रोसॉफ्ट ने विंडोज कर्नेल में लागू किया था)। इन सभी को ओएस द्वारा प्रदान किए जाने की आवश्यकता है।


4
दरअसल, विंडोज में उपयोगकर्ता, Mounts और IPC के नाम स्थान होते हैं। उपयोगकर्ता नाम स्थान सक्रिय निर्देशिका के लिए आवश्यक हैं, मल्टी यूजर ऑपरेशन के लिए माउंट नेमस्पेस और आईपीसी नेमस्पेस आवश्यक हैं। फंडामेंटल रूप से, विंडोज में कर्नेल ऑब्जेक्ट मैनेजर में हमेशा से ही नाम स्थान होते हैं, बहुत पहले विंडोज एनटी रिलीज़ से, इसलिए यह अजीब नहीं है।
14

3
और दूरस्थ डेस्कटॉप सेवाओं के साथ, सत्र ऑब्जेक्ट सक्रिय रूप से इन नामस्थानों का उपयोग समवर्ती ऑपरेशन प्रदान करने के लिए करते हैं। इसका मतलब यह नहीं है कि आपके पास सभी आवश्यक बुनियादी ढांचे हैं, लेकिन प्रमुख हिस्से हैं। के रूप में chroot, एहसास है कि Ubuntu वातावरण पहले से ही Win32 एक से एक अलग जड़ है।
एमएसल्टर्स

6
दरअसल, मुझे लगता है कि इस तरह से इसका जवाब देना जल्दबाजी होगी। जैसा कि स्कॉट हैंसेलमैन की एक टिप्पणी में वर्णित है , विंडोज 10 कर्नेल अब लिनक्स सिस्कॉल स्वीकार करता है। तो सवाल यह है कि क्या डॉकटर (चुरोट और नेमस्पेस के लिए) की जरूरत वाले सिसकल्स को लागू किया गया था या नहीं। हालांकि उत्तर "नहीं" होने की संभावना है, कोई निश्चित जानकारी नहीं है, जहां तक ​​मैं बता सकता हूं।
15

1
@ स्लेस्के सही है, यह प्रश्न इस समय जवाबदेह नहीं है, और यह कहते हुए कि "ऐसा नहीं कर सकते हैं" बिना किसी वास्तविक संकेत के कि विधवाओं में लिनक्स स्पेस पर काम करने वाले देवों को बहुत अनुमान है।
रयान

2
मुझे विश्वास के साथ यह बताने के लिए पर्याप्त नहीं है कि यह उत्तर पूरी तरह से गलत है, लेकिन जिस तरह से इसे बनाया गया है वह मुझे इसकी वैधता से थोड़ा संदेह करता है। विशेष रूप से बताते हुए "बैश एक सरल उपयोगकर्ता स्थान कार्यक्रम है और इनमें से कोई भी प्रदान नहीं कर सकता है" और लिनक्स के लिए विंडो सबसिस्टम को "नया बैश फीचर" के रूप में संदर्भित करते हुए यह ध्वनि देता है जैसे यह उत्तर पूरी तरह से गलत धारणा पर आधारित है जो सभी Microsoft ने किया था विंडोज के लिए पोर्ट बैश था। वही हुआ जो नहीं हुआ। उन्होंने विंडोज कर्नेल के शीर्ष पर चलने वाला एक संपूर्ण लिनक्स कर्नेल इंटरफ़ेस विकसित किया: msdn.microsoft.com/en-us/commandline/wsl/about
Ajedi32

7

निर्माता अपडेट के रूप में (सार्वजनिक रूप से 13 जून, 2017 को जारी किया गया) आप सीधे WSL में देशी विंडोज निष्पादन योग्य चला सकते हैं। इसका मतलब है कि अगर आपने विंडोज के लिए डॉकटर पहले ही इंस्टॉल कर लिया है, तो आप बस के dockerनीचे स्थापित बायनेरिज़ को आमंत्रित कर सकते हैं C:\Program Files। चूंकि वे .exeसबसे आसान विकल्प में समाप्त होते हैं, उपनाम बनाना है। आपके .bashrcकाम में निम्नलिखित कुछ होना चाहिए:

DOCKER_BIN='/mnt/c/Program Files/Docker/Docker/resources/bin'
for f in "$DOCKER_BIN"/*; do
  alias "$(basename "$f" | sed 's/.exe$//')"'="'"$f"'"'
done

यह DOCKER_BINनिर्देशिका की सभी फ़ाइलों के लिए उपनाम बनाता है :

$ type docker
docker is aliased to `"/mnt/c/Program Files/Docker/Docker/resources/bin/docker.exe"'

$ docker --version
Docker version 17.03.1-ce, build c6d412e

एक चेतावनी: यदि आपको लिनक्स निर्देशिका से चलाया जाता है तो आपको " वर्तमान कार्य निर्देशिका का अनुवाद करने में असमर्थ " जैसा एक त्रुटि संदेश मिलेगा । बस cdएक विंडोज निर्देशिका (जैसे /mnt/c/Users/YourUsername) में और आप अच्छे होने चाहिए।


ऐसा लगता है कि डॉक-कम्पोज़ी वाईएमएल फ़ाइलों में बैश वातावरण चर नहीं उठाता है। उसके लिए कोई विचार?
शूल्ज

1
यह समझ में आता है, क्योंकि आप विंडोज dockerबाइनरी को लागू कर रहे हैं , और बस लिनक्स शेल के माध्यम से ऐसा कर रहे हैं। मुझे यकीन नहीं है कि अगर यह पूरा करने का एक अच्छा तरीका है।
dimo414

6

एक बार डॉकटर १.१२ जारी होने के बाद और लिनक्स डॉकर क्लाइंट अलग हो जाता है, तो आपको विंडोज १० वॉश में डॉक क्लाइंट को चलाने में सक्षम होना चाहिए ।

यह आपको किसी डॉकर विंडोज क्लाइंट की तरह ज्यादा नहीं लग सकता है, लेकिन यह उपयोगी है यदि आपके पास लिनक्स टूलकाइन्स हैं जो क्लाइंट साइड कार्यक्षमता के लिए डॉकटर शामिल करते हैं।


4

विंडोज 10 संस्करण 1607 बिल्ड 1493.10 में आप इसे उबंटू बैश पर सफलतापूर्वक स्थापित कर सकते हैं, लेकिन यह काम नहीं करता है :(

एक सरल "docker संस्करण" आपको बताएगा:

Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.2.1
Git commit (client): 7c8fca2
OS/Arch (client): linux/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.18/version: dial unix /var/run/docker.sock: setsockopt: invalid argument. Are you trying to connect to a TLS-enabled daemon without TLS?

यदि आप "sudo docker -d" चलाते हैं, तो आपको निम्न त्रुटि मिलेगी:

FATA[0000] ERROR: You are running Linux kernel version 3.4.0+, which is unsupported for running Docker. Please upgrade your kernel to 3.8+.

तो यह निश्चित रूप से बैश की तरफ से एक स्टॉपर है।

फिर भी, आप विंडोज के लिए डॉकर इंस्टॉल कर सकते हैं और यह एक आकर्षण की तरह काम करता है, आप स्पष्ट रूप से लिनक्स सर्वर और आपकी जरूरत की हर चीज को तैनात कर सकते हैं।

> docker version
Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      windows/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:15:28 2016
 OS/Arch:      linux/amd64

3

सितंबर 2016 तक, नहीं।

विंडोज पर डॉकटर के सभी वर्तमान कार्यान्वयन वर्चुअलाइजेशन का उपयोग करते हैं, डॉकर 1.12 वर्चुअलाइजेशन पर कंटेनराइजेशन का लाभ हटाते हुए विंडोज में एक हाइपरविजर का उपयोग करता है।

Docker को Linux सिस्टम कॉल का उपयोग करने की तुलना में अधिक आवश्यकता है।

इसके लिए प्रक्रिया नियंत्रण समूह (cgroups), स्टैकेबल फाइल सिस्टम (aufs), प्लस कर्नेल के बाहर अन्य लिनक्स-आधारित सिस्टम की आवश्यकता होती है।

विंडोज 10 कर्नेल में न तो cgroups और न ही auf हैं।

यहाँ Windows Server 2016 का कार्यान्वयन है: https://msdn.microsoft.com/en-gb/virtualization/windowscontainers/quick_start/quick_start_windows_server .. लेकिन यह केवल Windows सेवाएँ चलाएगा, जैसे IIS, और Ubuntu नहीं।


2

वर्तमान में डॉकर वर्तमान बिल्ड (14316) में काम नहीं करता है - यह मानते हुए कि आप इसे स्थापित कर सकते हैं।

root@localhost:~# docker --help
runtime: address space conflict: map(0x7ff5ddbb0000) = 0x7ff5ffd20000
fatal error: runtime: address space conflict

बहुत बढ़िया! कृपया प्रयास करते रहें।
हॉकआई

ऐसा लगता है कि यह कैसे काम करता है स्मृति आवंटन golang में (जो डोकर में लिखा है) से संबंधित हो सकती: groups.google.com/forum/#!msg/golang-dev/EpUlHQXWykg/...
टिमोथी Meade

मेरा बस आदेश के बाद हमेशा के लिए लटका रहता है।
wieczorek1990

1

प्रेषक: https://blog.docker.com/2016/07/docker-for-mac-and-windows-production-ready/

Faster and more reliable – native development environment using
hypervisors built into each operating system. (No more VirtualBox!)

2
यह इस तथ्य के साथ पूरक है कि अब आप बैश में लिनक्स के लिए docker क्लाइंट चला सकते हैं, इसलिए यदि आप उपयोग नहीं कर रहे हैं तो PowerShell का उपयोग करने से बचें
कार्लोस राफेल रामिरेज़

1
यह देखना दिलचस्प होगा कि क्या वे इसे बड़े पैमाने पर झुंड के रूप में देखते हैं।
हॉकआई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.