Docker Architecture & Basic Commands - Docker Series Part 1

في السلسلة دي، هنغطي أهم المفاهيم والأدوات والـ Commands اللي ليها علاقة بـ Docker بشكل بسيط وسهل عشان تقدر تستفيد منها بسرعة وتطبّقها في شغلك.
Docker Architecture & Basic Commands - Docker Series Part 1
Docker Architecture & Basic Commands - Docker Series Part 1

في هذه الصفحة

المقدمة

لو بتدور على طريقة سهلة وفعّالة عشان تدير بيها التطبيقات بتاعتك، فمفيش شك إن Docker هيكون من أهم الأدوات اللي هتساعدك لتحقيق ده. Docker هو أداة قوية جدًا تقدر تعملها بيها حاويات Containers، ودي زي بيئة معزولة بتشغل فيها التطبيقات بتاعتك.

وفي السلسلة دي، هنغطي أهم المفاهيم والأدوات والـ Commands اللي ليها علاقة بـ Docker بشكل بسيط وسهل عشان تقدر تستفيد منها بسرعة وتطبّقها في شغلك.


Container vs VM

A screenshot of a computer screen

Description automatically generated
Containers abstract application layer, vm abstract os

كل containers بتشترك في نفس ال kernel بتاع ال os الأساسي ودا بيقلل من استهلاك ال Recourses والوقت اللازم لبدء التشغيل

اما ال vm بتكون os كامل ليها ال kernel بتاعتها وال Application الخاصه بيها فبتحتاج Recourses كتيره عشان تقدر تشغل كل دا وبتشكل عزل كامل بين ال vms وبعضها لانها بتكون os مستقل ودا اقوي من ناحيه ال security


Docker

الdocker هو عبارة عن software لتبسيط ال process في ال building و ال Running وال Managing لل Application عن طريق ال Container  وبكل سهولة بيمكني اني انقل ال App بتاعي من مكان لمكان تاني 

بيستخدم حاجه اسمها Namespace ودي بتمد ال Docker بال Workspace المنعزلة ال هيشتغل عليها وكل Namespace منعزل عن التاني


Docker Architecture

A diagram of a docker host

Description automatically generated

عندي 3 حاجات أساسية: 

  1. الClient  ودا هو ال CLI ال هكتب فيه ال Commands بتاعتي
  2. ال Docker Host ودا بيكون بداخله 3 أجزاء :
  • ال Docker Daemon: ودا ال بيبدا يستقبل ال Commands من ال Client ويبعتها لمكانها الصح (ال Daemon ال بيستخدمه ال Dcker اسمه dockerd )
  • ال Images: دي ال بيكون بداخلها ال files ال من خلالها بعمل Run لل Container بتاعي، وال Image ID بيتكون من حاجه اسمها Image Layers واي تغيير بيتم ف ال Image يعتبر layer منفصل عن باقي ال Layers 
A screenshot of a computer

Description automatically generated
  • ال Container: بعد ما بعمل Run لل image بتبدا تعملي ال Container اوا انا بعد م احمل ال image اعمل Create لل Container من خلال ال image دي
  1. ال Registry: دا ال Store ال بيكون بداخله كل ال Images ودا اسمه Docker Hub ومن خلاله بقدر اعمل Download لاي Image انا محتاجها 
  • ال بيحصل بقا : مثلا كتبت ع ال client امر docker pull فال client هيبعتها لل daemon فهيترجم انه عاوز يعمل download لل image فهيبعت ال command لل registry فال registry يبدا يعمل download لل image ع ال host ف المكان ال بيكون فيه images 
  • وعشان نعمل install docker : ممكن تدخل ع اللينك دا وع حسب ال OS تقدر تعمل Install Docker 
Install Docker Engine
Learn how to choose the best method for you to install Docker Engine. This client-server application is available on Linux, Mac, Windows, and as a static binary.

[root@mostata ~ ] sudo systemctl status docker

عشان اشوف ال status بتاع ال docker  بعد ال install 

[root@mostata ~ ] sudo docker version

عشان اشوف ال version بتاع ال docker 

[root@mostata ~ ] docker image pull mysql

ال command دا بيعمل Download  لل image ال اسمها mysql من ال docker hub وتتخزن في ال host بتاعي


تقدروا دلوقتي تشتركوا في النشرة الأسبوعية لاقرأ-تِك بشكل مجاني تمامًا عشان يجيلكوا كل جديد بشكل أسبوعي فيما يخص مواضيع متنوعة وبشروحات بسيطة وسهلة وبجودة عالية 🚀

النشرة هيكون ليها شكل جديد ومختلف عن شكلها القديم وهنحاول انها تكون مميزة ومختلفة وخليط بين المحتوى الأساسي اللي بينزل ومفاجآت تانية كتير 🎉

Eqraatech Newsletter | Eqraatech - اقرأ-تِك | Substack
محتوى تقني متميز في مختلف مجالات هندسة البرمجيات باللغة العربية عن طريق تبسيط المفاهيم البرمجية المعقدة بشكل سلس وباستخدام صور توضيحية مذهلة. Click to read Eqraatech Newsletter, a Substack publication with hundreds of subscribers.

بفضل الله قمنا بإطلاق قناة اقرأ-تِك على التليجرام مجانًا للجميع 🚀

آملين بده اننا نفتح باب تاني لتحقيق رؤيتنا نحو إثراء المحتوى التقني باللغة العربية ، ومساعدة لكل متابعينا في انهم يوصلوا لجميع أخبار اقرأ-تِك من حيث المقالات ومحتوى ورقة وقلم والنشرة الأسبوعية وكل جديد بطريقة سريعة وسهلة

مستنينكوا تنورونا , وده رابط القناة 👇

https://t.me/eqraatechcom


[root@mostata ~ ] docker container create mysql

بعمل Create ل Container من ال image ال عملتلها download . لازم عشان اعمل Create ل Container تكون ال image عندي علي ال Host

[root@mostata ~ ] docker container start mysql

كدا بعمل Run لل Container 

طيب كدا عديت علي 3 مراحل عشان اعمل Run لل Conatiner فهل فيه طريقه ابسط من كدا 

اه في Command  واحد تكتبه يعملك ال 3 مراحل دي مره واحده وهو الامر دا :

[root@mostata ~ ] docker run mysql

ال docker run هيعمل download لل image وبعد كدا يعمل create ل container منها وبعدين يعمل Run لل Container دا

[root@mostata ~ ] docker container stop mysql

بعمل Stop لل Container

[root@mostata ~ ] docker run -it ubuntu /bin/bash

كدا بقوله اني عاوز استخدم ال Terminal من نوع bash لل image دي و -i يعني interact و -t يعني terminal

[root@mostata ~ ] docker exec -it ubuntu bash

بقوله عاوز استخدم ال terminal من نوع bash لل container   دا

[root@mostata ~ ] docker run -d ubuntu

دي بقوله اعملي Run لل Container من ال image دي بس في ال Background والـ -d يعني detach

[root@mostata ~ ] docker stop ubuntu 

بعمل Stop لل container 

[root@mostata ~ ] docker rm ubuntu 

بعمل remove لل Container دا

[root@mostata ~ ] docker rmi ubuntu 

بعمل Remove لل Image دي

[root@mostata ~ ] docker images 

بيعرضلي list بكل ال images ال عندي

[root@mostata ~ ] docker ps

بيعرضلي كل ال container بس ال هي Runing حاليا 

[root@mostata ~ ] docker ps -a

بيعرضلي كل container سواء ال Running او ال Stop

[root@mostata ~ ] docker rm 0ab 76d 317
💡
ركز علي الامر docker rm انا بقوله هعمل Remove لل container ال اول 3حرف فيه 0ab وال container ال اول 3 حرف فيه 76d وال container ال اول 3حروف فيه 317 

ف كدا هعمل remove ل 3 container مره واحده

في العادي مينفعش احذف ال container وهو running لكن لو استخدمت ال option دا -f هقوله اعملي remove لل container وحتي لو Running انت اعمله stop واحذفه والامر بيكون كدا:

docker rm -f + container id

اشترك الآن بنشرة اقرأ-تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!