Machine: الاتصال بمحرك Windows Docker

تم إنشاؤها على ٢٢ يناير ٢٠١٦  ·  60تعليقات  ·  مصدر: docker/machine

هل بدأ أي شخص في إضافة أو التفكير في برنامج تشغيل جهاز الرصيف وموفر لمحركات Windows Docker؟
لذلك يمكن لأي شخص استخدام جهاز الإرساء لتأمين Windows Server 2016 TP4 والاتصال به بنفس سهولة استخدامنا لمحرك Linux Docker؟

شيء مثل:

docker-machine create -d generic --generic-winrm-user "administrator" ... dev
docker-machine create -d azure --azure-username "administrator" --azure-winrm-port 5985 ... dev

استخدام WinRM (HTTP / HTTPS) بدلاً من SSH للوصول إلى خادم Windows البعيد ووضع شهادات TLS فيه وإعادة تكوين خدمة Windows Docker وأشياء أخرى.
أعلم أن Packer لديها اتصالات لـ SSH و WinRM مدمجة في Go للتزويد.
فقط ربط النقاط ...

pingahmetalpbalkan : ابتسم:

arewindows kinenhancement

التعليق الأكثر فائدة

تابعت @ jen20 الصورة تعليمات لبناء AMI ويندوز مع SSH. إنه يعمل مع Docker Machine حتى نقطة التزويد ، حيث يفشل لأنه لا يوجد ملف /etc/os-release . الآن بعد أن أصبح SSH على Windows متاحًا (مع بعض الجهد) ، هل يمكننا الحصول على مزود Docker Machine المستند إلى SSH لنظام Windows؟

ال 60 كومينتر

نظرًا للطريقة التي يعمل بها نموذج المزود حاليًا ، فقد لا يكون من الجنون تنفيذ مثل هذه الوظيفة ، على الرغم من أنها تتطلب إعادة التفكير أو وضع ورق على بعض الافتراضات الأساسية (مثل وجود SSH).

لدي شعور بأن الطريقة التي ستحتاج إلى تنفيذها هي من خلال وجود بعض العلامات التي تشير على وجه التحديد إلى أنه جهاز يعمل بنظام Windows. على سبيل المثال ، --generic-winrm-userpass .

لا أعرف الكثير عن حاويات Windows Server ، ولكن كما قال ناثان ، فإن معظم العمل سيكون الحصول على بروتوكول SSH على Windows إما عن طريق انتظار Microsoft للقيام بذلك (يحدث ذلك) أو تقديم polyfill باستخدام WinRM ربما (لا أفعل تعرف كيف تعمل على الإطلاق).

أتذكر أن بعض النقاش حول هذا كان يحدث داخليًا أيضًا. cc: jstarks كما هو في فريق حاويات windows.

إذا كنت تعتقد أنه يمكنك وضع نموذج أولي لشيء ما ، فسأقول لك اذهب إليه.

مرحبًا StefanScherer ، أنا PM في فريق Hyper-V هذا باعتباره نظام التشغيل الذي يمكن لـ Docker Machine سحبه. إذا استخدمنا Nano ، فسيظل كتنزيل صغير. الريبو لSSH فتح في مشروع Windows هو هنا .

يتم تقدير أي أفكار وإذا كنت ستضع نموذجًا أوليًا لشيء ما ، فيرجى إبلاغي بذلك. سأستمر في النشر مرة أخرى هنا إذا اكتشفت المزيد حول كيفية جعل هذا العمل.

cc: dgageot

@ enderb-ms أوه ، صورة نانو ، سيكون ذلك رائعًا أيضًا. و OpenSSH هو أيضًا خيار. في غضون ذلك ، قامت مشاريع أخرى مثل Packer و Vagrant بتحسين دعم Windows لاستخدام WinRM والتخلص من SSH للحصول على اتصال أصلي أكثر.

ما فكرت فيه كخطوة أولى هو السماح لجهاز عامل الإرساء بالاتصال بخادم TP4 ، على سبيل المثال. مع السائق العام.

لم تجرب برنامج التشغيل azure ، لكنني أفكر في اختيار قالب محرك TP4 VM + في Azure و docker-machine ثم يعرف توفير Windows VM بدلاً من Linux VM. ما عليك سوى القيام ببعض الخطوات البسيطة لتوصيل الجهاز المحلي حيث تعمل آلة الإرساء مع محرك Docker البعيد هذا.

هذه هي خطوات برنامج تشغيل عام يعمل ضد Linux VM مثبت عليه Docker بالفعل. لقد أضفت بعض الأفكار لنظام Windows:

  1. جهاز عامل ميناء يتصل بعنوان IP البعيد
  2. تحقق من إصدار نظام التشغيل إذا كان من الممكن توفيره (cat / etc / os-release -> احصل على بعض معلومات windows بدلاً من ذلك)
  3. تحديث اسم المضيف؟
  4. تحديث / الخ / المضيفين
  5. تثبيت curl (ليس هناك حاجة لتثبيته على مضيفي Windows)
  6. تحقق من تثبيت عامل الإرساء. إذا لم يتم تثبيته. (ربما قم بتشغيل Install-ContainerHost.ps1 بالكامل؟)
  7. تحقق من إصدار عامل ميناء
  8. إنشاء دليل تكوين عامل ميناء (/ etc / docker ->٪ ProgramData٪ / docker)
  9. وقف خدمة عامل الميناء
  10. أدخل ca.pem (Windows:٪ ProgramData٪ / docker / certs.d)
  11. أدخل server.pem
  12. إدراج server-key.pem
  13. كتابة ملف تكوين عامل ميناء (/ etc / default / docker ، ربما يكون تحسينًا لـ٪ ProgramData٪ / docker / runDockerDaemon.cmd)
  14. بدء خدمة عامل ميناء
  15. netstat -an

المرحلة 1:

بالنسبة إلى Azure / TP4 المحلي مع سيناريو محرك عامل الإرساء المثبت مسبقًا:

الخطوة 1.) يجب أن تستخدم WinRM (على سبيل المثال ، إلقاء نظرة على جهاز اتصال winrm الخاص

الخطوة 2.) تحقق مما إذا كان كل شيء يعمل وما إذا كان الجهاز الظاهري هو TP4. وإلا فاحبط إذا لم يكن من الممكن تثبيت كل شيء على سبيل المثال دون إعادة التشغيل.

ثم يتعين عليها القيام بالخطوات 9.) ... 14.) لإيقاف عامل الإرساء ، وإدخال شهادات TLS وإعادة تشغيل عامل الإرساء. بعد أن قام عامل الإرساء هذا بإنشاء اتصال بـ Azure VM / محلي أو جهاز افتراضي محلي أو Windows VM وقام بتأمين منفذ عامل الإرساء.

المرحلة الثانية:

لاحقًا في الخطوة 2.) للسماح لخوادم 2016 "الفارغة" بتثبيت Docker بالخطوة 6.)

المرحلة 3:

ثم الحصول على "boot2docker.iso" مع صورة نانو فيه لتنزيله محليًا.

فقط بعض الأفكار الأولى ؛-)

dgageot هل تخطط للعمل على هذا؟ إذا لم يكن الأمر كذلك ، أعتقد أننا يجب أن نوجه أفراد Microsoft في الاتجاه الصحيح حتى يتمكنوا من محاولة إحراز تقدم

friism هناك عمل مستمر مع @ enderb-ms بالفعل

dgageot عظيم! هل يوجد مكان يمكنني الحصول فيه على مزيد من التفاصيل؟

dgageot لدي تغيير يمكنه تشغيل مثيلات خادم Windows على Azure وإعداد محرك Docker. هل يوجد ريبو ، حيث يتوفر عمل @ enderb-ms؟ يمكنني تقديم خاصتي هنا للمراجعة وربما دمجها أو توحيدها مع أي شيء يفعله @ enderb-ms.

وصف سريع لما قمت به

  1. أضف دعمًا لتدوير صورة Windows.
  2. استخدم صورة Windows Server 2016 TP4 على Azure
  3. تدور. أنا أستخدم المكتبة https://github.com/Azure/azure-sdk-for-go بدلاً من الكود المورّد في https://github.com/docker/machine/tree/master/vendor/github.com/ MSOpenTech / azure-sdk-for-go ، والذي يبدو وكأنه إصدار أقدم.
  4. استخدم WinRM للاتصال بالمثيل ، قم بتثبيت docker-engine
  5. نفذ أي خطوات أخرى. لقد لاحظت أن الشبكات تتعطل أحيانًا ويحتاج Vswitch إلى الإعداد.

MustafaHosny اللهم امين

تضمين التغريدة

hawt

بفضلstefanfoulisfriism. العمل موجود في https://github.com/containerx/machine ، ولكن هذا يتضمن أيضًا بعض التغييرات الأخرى التي لا علاقة لها بهذه العلاقات العامة.

أقوم بإنشاء فرع جديد ورمز تنظيف وسأرسل طلب سحب قريبًا.

لقد قدمت طلب السحب ، ونقدر أي تعليقات ومراجعات.

لا يزال هناك بعض العناصر ذات الترميز الثابت التي تحتاج إلى العمل ، والتي سأقوم بإصلاحها في الأيام القليلة المقبلة.

العلاقات العامة كمرجع: https://github.com/docker/machine/pull/3146

ppadala لطيف حقا. أعتقد أن مسؤولي صيانة @ enderb-ms & docker-machine يحاولون حاليًا معرفة ما إذا كان ينبغي عليهم استخدام WinRM أو bootstrap OpenSSH على Windows. سأترك هؤلاء الأشخاص ليقرروا أي عمل يجب المضي قدمًا فيه

بقدر ما يتعلق الأمر بالسائق اللازوردي ، أخشى أنه لا يمكننا إجراء تغييرات على سائق azure . لقد أعدت للتو كتابة برنامج التشغيل azure باستخدام حزمة Azure Resource Manager (إنه تغيير هائل). التفاصيل موجودة على: https://github.com/docker/machine/issues/2742#issuecomment -189993875 نحن نعالج حاليًا مشكلات عدم الاستقرار في Azure SDK ، وبمجرد الانتهاء من ذلك ، سأرسل العلاقات العامة لإصدار الأزرق الأزرق الجديد سائق.

ppadala من المهم أيضًا ألا يكون هذا على الأرجح مجرد تغيير في برنامج التشغيل azure حيث أن جميع مزودي السحابة لديهم صور WS2016 (إذا لزم الأمر) وربما تحتاج آلة الإرساء إلى إضافة تلك العلامات الخاصة بالنوافذ.

ppadala لطيف حقا. أعتقد أن مسؤولي صيانة @ enderb-ms & docker-machine يحاولون حاليًا معرفة ما إذا كان ينبغي عليهم استخدام WinRM أو bootstrap OpenSSH على Windows. سأترك هؤلاء الأشخاص ليقرروا أي عمل يجب المضي قدمًا فيه

لقد فكرت بالفعل في خيار SSH أيضًا. لم يعجبني خادم Windows OpenSSH الذي جربته ، وأواجه مشكلة في الاتصال بالخادم من OS X. ومع ذلك ، لم أجرب جميع خوادم SSH الممكنة ، فأنتم تعرفون أفضل. يسعدني الانتقال إلى المناقشة ، اسمحوا لي أن أعرف أين تجري المناقشة.

بقدر ما يتعلق الأمر بالسائق اللازوردي ، أخشى أنه لا يمكننا إجراء تغييرات على برنامج التشغيل السماوي. لقد أعدت للتو كتابة برنامج التشغيل azure باستخدام حزمة Azure Resource Manager (إنه تغيير هائل). التفاصيل موجودة في: # 2742 (تعليق) نحن نتعامل حاليًا مع مشكلات عدم الاستقرار في Azure SDK ، وبمجرد الانتهاء من ذلك ، سأرسل PR لإصدار برنامج التشغيل الأزرق الجديد.

لا تقلق ، فالتغيير الذي قمت به في الواقع ليس فقط على برنامج التشغيل الأزرق السماوي ، ولكن أيضًا لبقية جهاز الإرساء لإضافة خيار لنظام التشغيل. سأحاول كتابة الكود الخاص بك على # 2742. هل يحتوي الرمز بالفعل على دعم لتدوير صور Windows على Azure؟

ppadala من المهم أيضًا ألا يكون هذا مجرد تغيير في برنامج التشغيل الأزرق السماوي لأن جميع مزودي الخدمات السحابية سيكون لديهم صور WS2016 (إذا لزم الأمر) وربما تحتاج آلة الإرساء (إذا لزم الأمر) إلى إضافة تلك العلامات الخاصة بالنوافذ.

كما ذكرت أعلاه ، فإن التغيير الذي أجريته يحتوي على كل من برنامج التشغيل الأزرق السماوي وبقية تغييرات جهاز الرصيف. كيف ننطلق من هنا؟ يمكنني الانتظار حتى يتم الالتزام بتغييرات مدير الموارد الخاص بك ومن ثم يمكننا اكتشاف إضافة علامات خاصة بالنوافذ إلى جهاز الإرساء.

ahmetalpbalkan لقد راجعت الكود الذي نشرته في # 2742. كما أفهم ، إنه ينقل برنامج التشغيل لاستخدام واجهات برمجة تطبيقات ARM ولا يدعم صور Windows. هذا ما أقترحه

  1. مراجعة التعليمات البرمجية الخاصة بك وتنفيذها
  2. إضافة الغزل حتى دعم صورة Windows
  3. أضف مزود Windows باستخدام WinRM (أو SSH إذا كان هذا هو الخيار الذي نتفق عليه) ، والعلامات والتغييرات الأخرى في نواة جهاز الرصيف

لقد أجريت 2 و 3 مع برنامج التشغيل الحالي ويمكنني إجراء تغييرات مماثلة بناءً على برنامج التشغيل القائم على ARM. دعني ارى آراءك.

ppadala تبدو جيدة. إذا حاولت إعادة تعيين التعليمات البرمجية الخاصة بك فوق الفرع الخاص بي ، فيمكنك إلغاء الحظر والبدء في القيام ببعض الأعمال. من الناحية الوظيفية ، يكون برنامج التشغيل الجديد جاهزًا ، لكننا ما زلنا نتعامل مع بعض المشكلات في azure-sdk-for-go وقد تستغرق هذه بعض الوقت (مثل أسبوعين) وسأرسل النتيجة النهائية كسحب طلب.

ppadala هذا رائع! أشكركم على القيام بذلك. لسوء الحظ ، لم أتمكن من الحصول على أي وقت للمطور ، لذلك لم نبدأ العمل على أفكارنا. لكن هذا قد يساعدني في جذب الناس.
أحد الأسباب التي تجعلنا نرغب في استخدام SSH لنكون قادرين على السماح للمطورين في الأنظمة الأساسية الأخرى (Linux و OS X) بالقدرة على نشر مضيفي حاوية Windows في أجهزة افتراضية في أجهزتهم المحلية أو في السحابة. لقد بدأنا الحديث عن إمكانية تضمين OpenSSH في بعض صور Azure ، وبهذه الطريقة لن تكون هناك حاجة إلى خطوات إضافية لإضافة هذه الإمكانية. هل يمكن أن تخبرني المزيد عن المشكلات التي رأيتها مع OpenSSH؟
وضع علامة على dgageot الذي كان لديه أيضًا بعض الأفكار حول WinRM.
مرة أخرى ، هذا شيء رائع ، شكرًا لك على القيام بهذا ppadala

ppadala هذا رائع! أشكركم على القيام بذلك. لسوء الحظ ، لم أتمكن من الحصول على أي وقت للمطور ، لذلك لم نبدأ العمل على أفكارنا. لكن هذا قد يساعدني في جذب الناس.
أحد الأسباب التي تجعلنا نرغب في استخدام SSH لنكون قادرين على السماح للمطورين في الأنظمة الأساسية الأخرى (Linux و OS X) بالقدرة على نشر مضيفي حاوية Windows في أجهزة افتراضية في أجهزتهم المحلية أو في السحابة. لقد بدأنا الحديث عن إمكانية تضمين OpenSSH في بعض صور Azure ، وبهذه الطريقة لن تكون هناك حاجة إلى خطوات إضافية لإضافة هذه الإمكانية. هل يمكن أن تخبرني المزيد عن المشكلات التي رأيتها مع OpenSSH؟

كنت أقوم بإعداد https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH كخادم SSH. عندما أقوم بتشغيل ssh <server> <cmd> من Mac ، لا يبدو أنه يعمل ، على الرغم من أن ssh التفاعلي العادي يعمل على الخادم.

إذا قمت بتضمين خادم SSH في صور Azure ، فهذا بالتأكيد أنظف. يبدو أن واجهة برنامج تشغيل جهاز الإرساء تفترض بالفعل أن وصول SSH متاح.

ppadala في الواقع ، لقد وجدت للتو أن هناك بعض المكتبات التي تسمح باتصال winrm في Linux و Mac OS X ، مما سيجعل كل شيء أبسط بكثير في الوقت الحالي. أنت تستخدم هذه المكتبة لاتصالات winrm ، أليس كذلك؟ هل تعرف ما إذا كان هذا يعمل في Linux و Mac OS X؟

ppadala في الواقع ، لقد وجدت للتو أن هناك بعض المكتبات التي تسمح باتصال winrm في Linux و Mac OS X ، مما سيجعل كل شيء أبسط بكثير في الوقت الحالي. أنت تستخدم هذه المكتبة لاتصالات winrm ، أليس كذلك؟ هل تعرف ما إذا كان هذا يعمل في Linux و Mac OS X؟

نعم ، مكتبة Packer هي ما أستخدمه. يعمل على نظامي التشغيل Mac OS X و Linux.

ppadala مناقشة ssh vs winrm مثيرة جدًا للاهتمام:

  • SSH جميل لأنه يعني أن الجهاز يستخدم دائمًا نفس البروتوكول للتحدث مع المضيفين (سواء كانوا لينكس أو windows)
  • يعد برنامج winrm أمرًا رائعًا لأنه لا يتضمن التشويش على برامج جديدة / أجنبية على النوافذ

ppadala ، يبدو أنه يمكنك تمكين winrm تلقائيًا عند التزويد على azure بـ EnableWinRMHttp . التفاصيل هنا: https://msdn.microsoft.com/en-us/library/azure/dn495299.aspx

@ enderb-ms @ taylorb-microsoft ما هي صورة WS2016 البادئة التي يجب استخدامها لهذا الغرض؟

ppadala ، يبدو أنه يمكنك تمكين winrm تلقائيًا عند التزويد على azure باستخدام EnableWinRMHttp. التفاصيل هنا: https://msdn.microsoft.com/en-us/library/azure/dn495299.aspx

أنا أفعل هذا بالفعل ، مما يفتح المنافذ في Azure. تحتاج الصورة أيضًا إلى تمكين WinRM وإعداد قاعدة جدار حماية Windows بشكل صحيح. ربما يمكن لأفراد Microsoft أن يتناغموا هنا ، إذا كنت أفهم هذا بشكل غير صحيح.

بخصوص مسألة WinRM مقابل OpenSSH.

أعتقد أن كلاهما يجب أن يكون في النهاية خياران ... يتقدم عمل OpenSSH لنظام التشغيل Windows (https://github.com/PowerShell/Win32-OpenSSH) ولكنه لم يكتمل بعد (على سبيل المثال ، لم يعمل بعد على خادم Nano ). لذلك أعتقد أن WinRM هو خيار جيد في الوقت الحالي وبعد ذلك يمكننا وضع طبقة على OpenSSH عندما يكون متاحًا للتكافؤ مع تجارب Linux.

مرحبًا ppadala ، لدى بعض زملائي في العمل بعض الأسئلة حول التحديث الذي تخطط

  1. هل لديك أي خطط لاختباره مع Nano Server؟ كيف يختار السائق نظام التشغيل الذي يختاره؟
  2. باستخدام التغييرات التي ستجريها ، هل سينجح هذا السيناريو؟ "يستخدم المستخدم وظيفة إنشاء جهاز الإرساء مع برنامج تشغيل Azure لتوفير جهاز افتراضي لمضيف حاوية Windows ، ثم يستخدم env جهاز عامل الإرساء لبدء إدارة حاوياته من الجهاز الظاهري من العميل"
  3. كيف سيبدو الأمر "docker-machine create" لنظام Windows؟

أيضًا ، لا أقصد أن أكون انتهازيًا ولكني أشعر بالفضول ، هل لديك أي فكرة عن موعد انتهاء علاقاتك العامة؟ مرة أخرى ، شكرا جزيلا لك على هذا!

فيما يتعلق بسؤالfriism ، إذا كان هذا يمكن أن يعمل مع صور الخادم الكامل و Nano Server لـ WS2016 ، فسيكون ذلك مثاليًا.

  1. هل لديك أي خطط لاختباره مع Nano Server؟ كيف يختار السائق نظام التشغيل الذي يختاره؟

نعم. يقوم برنامج التشغيل ببساطة بتدوير أي صورة خادم Windows يتم تقديمها كخيار مشابه لكيفية اختيار صورة linux مع خيار --azure-image. يجب اختبار ذلك خادم النانو.

  1. باستخدام التغييرات التي ستجريها ، هل سينجح هذا السيناريو؟ "يستخدم المستخدم وظيفة إنشاء جهاز الإرساء مع برنامج تشغيل Azure لتوفير جهاز افتراضي لمضيف حاوية Windows ، ثم يستخدم env جهاز عامل الإرساء لبدء إدارة حاوياته من الجهاز الظاهري من العميل"

نعم. هذه هي حالة الاستخدام الرئيسية. تظل وظيفة العميل كما هي ، لأن كل ما نقوم به هو تشغيل مضيف Docker لخادم Windows وإعداد المنافذ. إذا كان محرك docker في Windows يدعم هذا (وهو ما يفعله) ، فهذا يعمل.

  1. كيف سيبدو الأمر "docker-machine create" لنظام Windows؟

الخيارات الإضافية ستكون --azure-os "windows" ، --azure-winrm-username "username" ، --azure-winrm-password "password" على غرار الطريقة التي اقترحها StefanScherer أعلاه.

فيما يتعلق بالجدول الزمني ، لقد أعدت بالفعل معظم التغييرات التي أجريتها مع برنامج تشغيل Azure الجديد (https://github.com/docker/machine/pull/3159) ، لكن ahmetalpbalkan وأنا ahmetalpbalkan قدم تعليقًا حول العودة إلى برنامج التشغيل الأقدم (https://github.com/docker/machine/issues/3201#issuecomment-199409527). نحتاج أولاً إلى حل تلك المناقشة للمضي قدمًا. إذا عدنا إلى برنامج التشغيل القديم ، فسيكون من الأسهل بالنسبة لي الدمج.

هل ستحضر Build؟ سيكون من الرائع المزامنة شخصيًا.

ppadala سأكون هناك! يستضيف Docker أيضًا مأدبة غداء في الساعة 12 يوم 30 في Delarosa ، 37 Yerba Buena. Ping @ ah3rz لمزيد من التفاصيل

ppadala لن أكون في Build ، لكن مديري @ taylorb-microsoft سيكون كذلك ، لذا يمكنك المزامنة معه :-)

ppadala لقد ذكرت أنه تم إلغاء حظرك ، أخبرنا أن هناك أي شيء يمكننا القيام به للمساعدة.

تحديث. لدي معظم التغيير الذي أعيد تأسيسه ، وأنا قادر على تدوير خوادم Windows. تنظيف الرمز لتقديمه للسحب في غضون أيام قليلة.

ومع ذلك ، نحتاج إلى اتخاذ قرار بشأن صورة خادم Windows لاستخدامها كصورة VM مستهدفة. تم تمكين RDP فقط في صورة Windows Server Core الرسمية الحالية. أحتاج إلى تمكين WinRM في الصورة. لاحظ أن هذا لا يتعلق بتمكين WinRM من خلال Azure (https://msdn.microsoft.com/en-us/library/azure/dn495299.aspx) كما اقترح عدد قليل من الأشخاص. هذا يفتح فقط منافذ WinRM في Azure. يجب أن يشغّل المثيل الجاري للصورة (الذي تم التقاطه لاحقًا في صورة جديدة من خلال sysprep) الأوامر التالية.

PS C:\> winrm set winrm/config/service/auth @{Basic=”true”}
PS C:\> winrm set winrm/config/service @{Allowunencrypted=”true”}
PS C:\> New-NetFirewallRule -Protocol TCP -LocalPort 5985 -Direction Inbound -Action Allow -DisplayName winrm
PS C:\> winrm quickconfig

تجعد آخر هو أن تثبيت محرك عامل الإرساء يستغرق وقتًا أطول من التثبيت على جانب Linux. يجب أيضًا إعادة تشغيل الجهاز الظاهري. أنا أستخدم الأوامر التالية لتثبيت محرك عامل الإرساء.

PS C:\> wget -uri https://aka.ms/tp4/Install-ContainerHost -OutFile C:\Install-ContainerHost.ps1
PS C:\> powershell.exe -NoProfile C:\Install-ContainerHost.ps1 -HyperV

Reboot

PS C:\> Install-ContainerImage -Name WindowsServerCore -Version 10.0.10586.0
PS C:\> wget https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/live/windows-server-container-tools/Update-ContainerHost/Update-ContainerHost.ps1 -OutFile Update-ContainerHost.ps1
PS C:\> ./Update-ContainerHost.ps1

أسئلة لـ @ enderb-ms و ahmetalpbalkan : هل يمكن لـ Microsoft توفير صورة تم تمكين WinRM؟ أثناء قيامنا بذلك ، هل يجب أن نفكر في تجميع محرك عامل الإرساء معه أيضًا بدلاً من التثبيت عند الطلب؟ على الرغم من أن هذا يقيد المستخدمين على إصدار مجمع محدد من محرك عامل الإرساء ، فإن الجهاز الظاهري سيكون متاحًا بشكل أسرع (وإلا يقوم المستخدم بتشغيل جهاز الإرساء وينتظر لمدة ساعة أو أكثر للحصول على مضيف عامل إرساء Windows Server الخاص بهم.).

حاليًا ، قمت بإنشاء صورة مخصصة تم تثبيت وتهيئة WinRM ومحرك docker.

ppadala هو الفرع العام في أي مكان؟ بالطريقة التي تبدأ بها تشغيل VMs ، ألا يمكنك تشغيل نصوص init كما هو الحال هنا؟ https://github.com/Azure/azure-quickstart-templates/blob/875d139c16c9c023dce519e6dd48c707e3473346/201-vm-winrm-windows/azuredeploy.json#L183

ppadala هو الفرع العام في أي مكان؟ بالطريقة التي تبدأ بها تشغيل VMs ، ألا يمكنك تشغيل نصوص init كما هو الحال هنا؟ https://github.com/Azure/azure-quickstart-templates/blob/875d139c16c9c023dce519e6dd48c707e3473346/201-vm-winrm-windows/azuredeploy.json#L183

الفرع عام ، لكني لم أحقق الأحدث بعد. دعني أرى ما إذا كان بإمكاني القيام بذلك.

ppadala هو الفرع العام في أي مكان؟ بالطريقة التي تبدأ بها تشغيل VMs ، ألا يمكنك تشغيل نصوص init كما هو الحال هنا؟ https://github.com/Azure/azure-quickstart-templates/blob/875d139c16c9c023dce519e6dd48c707e3473346/201-vm-winrm-windows/azuredeploy.json#L183

حاولت تمرير الموارد ، لكنني حصلت على خطأ

Error creating machine: Error in driver during machine creation: compute/VirtualMachinesClient:CreateOrUpdate 400 Failure responding to request -- Original Error: azure: Service returned an error. Code="InvalidRequestContent" Message="The request content was invalid and could not be deserialized: 'Could not find member 'resources' on object of type 'ResourceDefinition'. Path 'resources', line 1, position 953.'." Status=400

إليك الكود الذي يحاول القيام بذلك: https://github.com/ppadala/machine/blob/azure-windows/drivers/azure/azureutil/azureutil.go#L540. يمكنك رؤية الالتزامات https://github.com/ppadala/machine/commits/azure-windows لمعرفة التغييرات الخاصة بي للحصول على دعم Windows.

الطريقة الصحيحة للقيام بذلك هي جعل Azure go-sdk يعرض وظيفة سهلة الاستخدام لإعداد قالب النشر هذا. من الصعب ترجمة الأشياء الصحيحة لتمريرها من خلال النظر في قوالب نشر json. ahmetalpbalkan ، أي أفكار؟

في الأساس ، هناك مساران.

  1. لديك صورة مخصصة مع WinRM (وربما محرك عامل الإرساء) مثبتة ومهيأة. بعد ذلك ، الكود الذي لدي حتى الآن جاهز للعمل.
  2. ابدأ من صورة Windows Server 2016 العامة ، واكتشف التثبيت من خلال القوالب ، ثم تابع باقي الخطوات مثل تحميل الشهادات وما إلى ذلك.

ppadala أنا في حيرة أيضًا. أراهن أن واجهة برمجة التطبيقات تحاول أن تقول إنه لا يمكنك تحديد الامتدادات على استدعاء إنشاء VM. على سبيل المثال ، عند نشر قالب ARM بامتدادات ومشاهدة حدوث النشر ، يقوم ARM أولاً بإنشاء الجهاز الظاهري ثم إنشاء مورد الامتداد بشكل منفصل بمجرد إنشاء الجهاز الظاهري ...

يجب أن تكون هناك بعض الطرق لإضافة امتدادات إلى الأجهزة الافتراضية في حزمة arm/compute . أقترح إضافة ملحقات بمجرد إنشاء الجهاز الظاهري ، يجب أن يحظر ذلك.

شكراahmetalpbalkan. لقد أضفت VirtualMachineExtension بعد إنشاء VM وعمل. اضطررت إلى المصارعة قليلاً لمعرفة الطريقة الصحيحة لإعداد مستمعي WinRM HTTPS ، لكن لدي طلب السحب # 3329 جاهزًا. اسمحوا لي أن أعرف تعليقاتكم.

قمت أيضًا بتحميل الثنائيات على https://www.dropbox.com/sh/kpc46xtc8su2sj7/AABtxVIVbGo8KLy7tu6HnWwza؟dl=0 للاختبار السهل.

الاستخدام: تمت إضافة ثلاث معلمات جديدة إلى برنامج تشغيل Azure

--azure-os "linux"                  OS for the Azure VM (Windows|Linux)
--azure-winrm-user "docker-user"    Username for WinRM login [$AZURE_WINRM_USER]
--azure-winrm-password              Password for WinRM login [$AZURE_WINRM_PASSWORD]

أمر عينة

docker-machine -D create -d azure --azure-subscription-id $(cat ~/azure/subid) --azure-os "windows" --azure-image MicrosoftWindowsServer:WindowsServer:2016-Technical-Preview-with-Containers:2016.0.20151118 --azure-winrm-password "mysecretpassword" vhost-win-test

ppadalaahmetalpbalkan أنا لا أعرف ما إذا كنت أدرجت هذا بالفعل، ولكن هذه المادة على تأمين الخفي النوافذ قد تكون مفيدة ايضا: https://github.com/Microsoft/Virtualization-Documentation/tree/master/windows-server- أدوات الحاوية / DockerTLS

تضمين التغريدة

ppadala شكرًا ، هذا رائع تمامًا. لقد جربت للتو الأمر النموذجي لإنشاء جهاز TP4 في Azure. ونعم ، لقد عملت مع الثنائيات التي تم إنشاؤها مسبقًا بمجرد إخراجها من الصندوق. (حسنًا ، عليك إدخال كلمة مرور أكثر تعقيدًا لتلائم متطلبات تعقيد كلمة مرور Windows)

محرك Docker Engine مؤمن مع مثل هذا الأمر البسيط لرسو السفن. هذا اختراق عظيم!

$ ./docker-machine-Darwin-x86_64 -D create -d azure --azure-subscription-id $(pass azure) --azure-os "windows" --azure-image MicrosoftWindowsServer:WindowsServer:2016-Technical-Preview-with-Containers:2016.0.20151118 --azure-winrm-password $(pass azure-winrm-password) vhost-win-test
$ eval $(./docker-machine-Darwin-x86_64 env vhost-win-test)
$ docker version
Client:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   9e83765
 Built:        Fri Feb 12 22:11:40 UTC 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.10.0-dev
 API version:  1.22
 Go version:   go1.5.1
 Git commit:   59a341e
 Built:        Fri Nov 13 17:23:07 UTC 2015
 OS/Arch:      windows/amd64

ppadala والشيء الأكثر روعة هو أن docker-machine rm -f vhost-win-test ينظف كل شيء - لقد كافحت مرات عديدة في تنظيف جميع أجزاء جهاز افتراضي تم إنشاؤه باستخدام "النشر إلى الأزرق السماوي" ، وغاب دائمًا عن زر "إلغاء النشر من الأزرق السماوي" 😄

ppadalaahmetalpbalkan أنا لا أعرف ما إذا كنت أدرجت هذا بالفعل، ولكن هذه المادة على تأمين الخفي النوافذ قد تكون مفيدة ايضا: https://github.com/Microsoft/Virtualization-Documentation/tree/master/windows-server- أدوات الحاوية / DockerTLS

شكرا على الرابطfriism. نعم ، محرك الرصيف مؤمن بالفعل باستخدام TLS على غرار Linux. ينشئ docker-machine create workflow بيانات الاعتماد (cert ، key and ca) وأنا أستخدم WinRM لتحميلها على Windows Server.

ppadala شكرًا ، هذا رائع تمامًا. لقد جربت للتو الأمر النموذجي لإنشاء جهاز TP4 في Azure. ونعم ، لقد عملت مع الثنائيات التي تم إنشاؤها مسبقًا بمجرد إخراجها من الصندوق. (حسنًا ، عليك إدخال كلمة مرور أكثر تعقيدًا لتلائم متطلبات تعقيد كلمة مرور Windows)

شكرا لمحاولة StefanScherer. كلمة مرور النص العادي هي الجزء الوحيد الذي لا أحبه هنا (أحب طريقة المرور الخاصة بك). يمكننا التبديل إلى المصادقة المستندة إلى الشهادة لاحقًا. للأسف مكتبة Packer لا تدعم ذلك حتى الآن.

ppadala والشيء الأكثر روعة هو أن أداة Docker-machine rm -f vhost-win-test تنظف كل شيء - لقد كافحت مرات عديدة في تنظيف جميع أجزاء جهاز افتراضي تم إنشاؤه باستخدام "النشر إلى الأزرق السماوي" ، وغاب دائمًا عن " إلغاء النشر من الزر الأزرق "

يعود الفضل إلى ahmetalpbalkan للانتقال إلى Azure ARM وكتابة "تنظيف" نظيف.

ppadala هذا مذهل. عمل عظيم! أعتقد أن السؤال الآن سيكون كيفية دمج هذا مع برنامج التشغيل الأزرق السماوي على المدى القصير والسائقين الآخرين (مثل google / aws) على المدى الطويل.

ahmetalpbalkan ، تمت مزامنة طلب السحب رقم 3329 بالفعل مع Master ودمجها مع برنامج التشغيل azure ، سيكون رائعًا إذا كان بإمكانك المراجعة وتقديم التعليقات. حاليًا ، فقط Azure لديه أجهزة افتراضية لنظام التشغيل Windows server 2016 ، ولكن الكود مكتوب بطريقة تدعم GCP و AWS و vSphere وغيرها بسهولة.

حاليًا ، فقط Azure لديه أجهزة افتراضية لنظام التشغيل Windows server 2016 ، ولكن الكود مكتوب بطريقة تدعم GCP و AWS و vSphere وغيرها بسهولة.

  • تضمين التغريدة
    هل هذا يعني أن دعم موفري الأجهزة الافتراضية المحلية يلوح في الأفق؟

ppadalasrounce أود أن أقول شخص ما يجب أن نلقي نظرة على WinRM ووسيناريو بدء التشغيل قدرات تنفيذ AWS / GCE / آخرين واجهات برمجة التطبيقات لمعرفة ما إذا كان يمكن استدار وظائف للسائقين الآخرين مع الحد الأدنى من مجموعة من التغييرات.

ppadalaahmetalpbalkan يمكن أن تستخدم سائق عامل ميناء آلة "السماوي" مع AzureStack ؟

nilleb أنا خائف ليس بعد. إذا كنت في حاجة إليها ، يرجى فتح مشكلة منفصلة.

لقد قمت للتو بتنزيل docker للنوافذ التي تحتوي على 1.12 RC2 الذي يحتوي على 0.8.0-rc1 ولكن عندما أجرب خيار "windows" "azure-os" يبدو أنه لا يعمل. يُرجى إعلامي من أين يمكنني الحصول على إصدار جهاز عامل إرساء يمكنه إنشاء مضيفات عامل إرساء TP5 Windows 2016 على Azure.

شكر،

SharadGumaste ما هو الخطأ عندما تقول "إنه لا يعمل"؟ هل حاولت تحديد الصورة بـ --azure-image ؟

لقد قمت للتو بتنزيل docker للنوافذ التي تحتوي على 1.12 RC2 الذي يحتوي على 0.8.0-rc1 ولكن عندما أجرب خيار "windows" "azure-os" يبدو أنه لا يعمل. يُرجى إعلامي من أين يمكنني الحصول على إصدار جهاز عامل إرساء يمكنه إنشاء مضيفات عامل إرساء TP5 Windows 2016 على Azure.

SharadGumaste أظن أنك كنت تحاول الإصدار الذي تم إصداره. لم يتم دمج التصحيح الخاص بدعم Windows (خيار azure-os windows) بعد.

براديب ، نعم لقد أجريت التحديث من برنامج عامل الإرساء. ما هو الافضل
طريقة للحصول على ثنائيات من عملك؟ أنا قريب جدًا من إجراء عرض توضيحي لـ
عميلنا باستثناء أنني لا أستطيع إنشاء خادم Windows غير مجردة وتثبيته
يستضيف عامل ميناء الأشياء ذات الصلة من نقطة الصفر ويضيف هذا الجهاز إلى ملفات
آلة عامل بناء وإنشاء ونشر من Visual Studio.
أنا عالق في شهادات TLS وما إلى ذلك ...

شكرا لتقديمك المساعده.

في يوم الخميس ، 23 يونيو 2016 ، كتب Pradeep Padala [email protected] :

لقد قمت للتو بتنزيل docker للنوافذ التي تحتوي على 1.12 RC2 ذلك
يحتوي على 0.8.0-rc1 ولكن عندما أحاول خيار "windows" "azure-os" فإنه يفعل
لا يبدو أنه يعمل. واسمحوا لي أن أعرف أين يمكنني الحصول على آلة الرصيف
الإصدار الذي يمكنه إنشاء مضيفات عامل إرساء TP5 Windows 2016 على Azure.

SharadGumaste https://github.com/SharadGumaste أظن أنك كنت
محاولة النسخة التي تم إصدارها. التصحيح لدعم Windows (azure-os
windows option) لم يتم دمجها بعد.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/docker/machine/issues/2907#issuecomment -228218888 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe/AH3YqqQLlXWUnSdw4i2TzsqXa4gHmTVYks5qOxt1gaJpZM4HKwbT
.

"A common mistake people make when trying to design something

مضمون تمامًا هو التقليل من براعة الحمقى ".

– Douglas Adams, author (1952 – 2001)

SharadGumaste هل يمكنك إرسال بريد إلى [email protected]؟ لدي ريبو منفصل لجهاز docker-machine لنظام التشغيل Windows ، يمكنني أن أرسل إليك إرشادات حول الإعداد.

هل هناك أي أخبار تتعلق بتدوير مضيف Windows Docker في VirtualBox محلي؟

هل يمتلك أي شخص نموذجًا أوليًا قادرًا على تدوير أجهزة Windows الافتراضية على Azure؟

djanosik إنني أعمل على محاولة الحصول على جهاز عامل إرساء يقوم بتدوير مثيلات Windows OpenStack و EC2 ذات المقياس التلقائي لبناءات GitLab CI. أخذت فرع العلاقات العامة في ppadala ، وحصلت عليه إلى أحدث ماجستير ، وأنا موجود في

تابعت @ jen20 الصورة تعليمات لبناء AMI ويندوز مع SSH. إنه يعمل مع Docker Machine حتى نقطة التزويد ، حيث يفشل لأنه لا يوجد ملف /etc/os-release . الآن بعد أن أصبح SSH على Windows متاحًا (مع بعض الجهد) ، هل يمكننا الحصول على مزود Docker Machine المستند إلى SSH لنظام Windows؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات