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

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث

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

نشأته[عدل]

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

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

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

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

مراجع[عدل]

  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. ^ https://api.github.com/repos/docker/docker — تاريخ الاطلاع: 6 مارس 2017
  5. ^ https://api.github.com/repos/docker/docker — تاريخ الاطلاع: 19 أبريل 2017
  6. ^ https://api.github.com/repos/docker/docker-ce — تاريخ الاطلاع: 24 يوليو 2018
  7. ^ http://thenewstack.io/go-programming-language-helps-docker-container-ecosystem/ — تاريخ الاطلاع: 19 أغسطس 2016
  8. ^ Release 18.09.6 — تاريخ الاطلاع: 6 مايو 2019 — تاريخ النشر: 6 مايو 2019
  9. ^ https://api.github.com/repos/docker/docker/releases — تاريخ الاطلاع: 6 أبريل 2017
  10. ^ Docker Community Edition and Lifecycle Improvements — تاريخ الاطلاع: 25 أبريل 2017 — تاريخ النشر: 2 مارس 2017
  11. ^ https://github.com/docker/docker.github.io/blob/ef8696340757d5354950d6b6603d1bbfc522e01e/_includes/global-header.html — تاريخ الاطلاع: 25 أبريل 2017
  12. ^ https://github.com/docker/docker/blob/master/LICENSE
  13. ^ https://github.com/docker/docker/blob/master/LICENSE — تاريخ الاطلاع: 26 مارس 2017 — العنوان : LICENSE
  14. ^ البرنامج الافتراضي الحر دوكر (بالإنجليزية)
  15. ^ "What is a Container" (باللغة الإنجليزية). اطلع عليه بتاريخ 17 فبراير 2018. 
  16. ^ المقارنة بين دوكر وباقي الأنظمة الافتراضية (بالفرنسية)