دوكر (برمجية)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
دوكر (برمجية)
Docker (container engine) logo.svg
الشعار
معلومات عامة
نوع
virtualization engine  [لغات أخرى]الاطلاع ومراجعة البيانات على ويكي داتا
نظام التشغيل
المنصة
مواقع الويب
معلومات تقنية
المطور الأصلي
Solomon Hykes  [لغات أخرى]الاطلاع ومراجعة البيانات على ويكي داتا
المطورون
Docker, Inc.  [لغات أخرى]الاطلاع ومراجعة البيانات على ويكي داتا
لغة البرمجة
الإصدار الأخير
19.03.1 (26 يوليو 2019)[5]الاطلاع ومراجعة البيانات على ويكي داتا
المستودع
الرخصة

دوكر هي تقنية جديدة ونوعية شبيهة بالنظم الافتراضية (بالإنجليزية: Virtual System) ولكنها تقوم بعملية إنشاء نسخ افتراضية للنظام[8]، وذلك من خلال إنتاج حاويات تتشارك فيها النواة مع النظام المضيف، حيث أن هذه الحاويات تلعب دور غلاف حاوي لتطبيق ما، بحيث يصبح قائما بذاته، مستقل؛ أي أن هذا التطبيق آو المشروع بكامل احتياجاته ليعمل يكون داخل حاوية (قد تكون حاوية واحدة أو عدة حاويات تتخاطب في ما بينها), وبالتالي فان ذلك يقلل من استهلاك موارد الجهاز . الجدير بالذكر أيضا أن القائمين على مشروع Docker قاموا بتوفير ما يسمى بـ Docker Hub يمكن ان تتشارك فيه صور المشروع (اذا كان مفتوح المصدر), حيث يوجد به الكثير من الحلول المفتوحة المصدر والقابلة للاستخدام

نشأته[عدل]

بدأ عام 2008 كمشروع صغير مفتوح المصدر باسم LXC لكن البداية الحقيقية لهذا التكنولوجيا كانت عام 2013 على يد شركة دوكر (بالإنجليزية: Docker) التي نشرت هذة التكنولوجيا بشكل رسمي وأصبح دوكر من أهم مكونات المنصات السحابية PaaS اللازمة لتطوير التطبيقات وأكثرها انتشارا.

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

الفرق بين دوكر والالأت الافتراضية[عدل]

يعد دوكر أخف بكثير من الآلات الافتراضية، حيث يمكن تشغيل العشرات من الحاويات في حاسوب عادي واحد، في حين لا يمكن تشغيل 3-4 آلات افتراضية في حاسوب عادي واحد ولو كان قويا نسبيا. أي أن دوكر يستهلك موارد أقل بكثير. ثم إن الآلات الافتراضية تقوم بمحاكاة كامل النظام وكل ما فيه ووضعه فوق النظام المضيف، في حين يقوم دوكر بتشارك النواة (Linux kernel) مع النظام المضيف. ما يقوم به دوكر هو تنزيل التوزيعات فقط، أي الـ bins/libs لكل توزيعة فقط، في حين يتشارك النواة مع النظام المضيف ولا يُنزّل نواة جديدة مع تلك التوزيعة. تلك الـ bins/libs كفيلة لمحاكاة بيئة التوزيعة المرجوة، أما النواة فهي متشابهة بين جميع التوزيعات وبالتالي يتقاسمها مع النظام المضيف وهو يعمل على كافة أنواع أنظمة التشغيل[9], هذا بالإضافة إلى أن دوكر يعزل التطبيق واعتمادياته فقط، في حين الآلات الافتراضية تعزل كامل النظام وما فيه من تطبيقات.[10]

مراجع[عدل]

  1. ^ https://docs.docker.com/engine/installation/linux/ — تاريخ الاطلاع: 19 أغسطس 2016
  2. ^ https://docs.docker.com/docker-for-windows/ — تاريخ الاطلاع: 19 أغسطس 2016
  3. ^ https://docs.docker.com/docker-for-mac/ — تاريخ الاطلاع: 19 أغسطس 2016
  4. ^ http://thenewstack.io/go-programming-language-helps-docker-container-ecosystem/ — تاريخ الاطلاع: 19 أغسطس 2016
  5. ^ Release 19.03.1 — تاريخ الاطلاع: 26 يوليو 2019 — تاريخ النشر: 26 يوليو 2019
  6. ^ https://github.com/docker/docker/blob/master/LICENSE
  7. ^ https://github.com/docker/docker/blob/master/LICENSE — تاريخ الاطلاع: 26 مارس 2017 — العنوان : LICENSE
  8. ^ البرنامج الافتراضي الحر دوكر (بالإنجليزية)
  9. ^ "What is a Container". Docker (باللغة الإنجليزية). مؤرشف من الأصل في 6 أغسطس 2018. اطلع عليه بتاريخ 17 فبراير 2018. 
  10. ^ المقارنة بين دوكر وباقي الأنظمة الافتراضية (بالفرنسية)