في هذه الصفحة
المقدمة
لو بتدور على طريقة سهلة وفعّالة عشان تدير بيها التطبيقات بتاعتك، فمفيش شك إن Docker هيكون من أهم الأدوات اللي هتساعدك لتحقيق ده. Docker هو أداة قوية جدًا تقدر تعملها بيها حاويات Containers، ودي زي بيئة معزولة بتشغل فيها التطبيقات بتاعتك.
وفي السلسلة دي، هنغطي أهم المفاهيم والأدوات والـ Commands اللي ليها علاقة بـ Docker بشكل بسيط وسهل عشان تقدر تستفيد منها بسرعة وتطبّقها في شغلك.
Container vs VM
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
عندي 3 حاجات أساسية:
- الClient ودا هو ال CLI ال هكتب فيه ال Commands بتاعتي
- ال Docker Host ودا بيكون بداخله 3 أجزاء :
- ال Docker Daemon: ودا ال بيبدا يستقبل ال Commands من ال Client ويبعتها لمكانها الصح (ال Daemon ال بيستخدمه ال Dcker اسمه dockerd )
- ال Images: دي ال بيكون بداخلها ال files ال من خلالها بعمل Run لل Container بتاعي، وال Image ID بيتكون من حاجه اسمها Image Layers واي تغيير بيتم ف ال Image يعتبر layer منفصل عن باقي ال Layers
- ال Container: بعد ما بعمل Run لل image بتبدا تعملي ال Container اوا انا بعد م احمل ال image اعمل Create لل Container من خلال ال image دي
- ال 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
[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 بتاعي
تقدروا دلوقتي تشتركوا في النشرة الأسبوعية لاقرأ-تِك بشكل مجاني تمامًا عشان يجيلكوا كل جديد بشكل أسبوعي فيما يخص مواضيع متنوعة وبشروحات بسيطة وسهلة وبجودة عالية 🚀
النشرة هيكون ليها شكل جديد ومختلف عن شكلها القديم وهنحاول انها تكون مميزة ومختلفة وخليط بين المحتوى الأساسي اللي بينزل ومفاجآت تانية كتير 🎉
بفضل الله قمنا بإطلاق قناة اقرأ-تِك على التليجرام مجانًا للجميع 🚀
آملين بده اننا نفتح باب تاني لتحقيق رؤيتنا نحو إثراء المحتوى التقني باللغة العربية ، ومساعدة لكل متابعينا في انهم يوصلوا لجميع أخبار اقرأ-تِك من حيث المقالات ومحتوى ورقة وقلم والنشرة الأسبوعية وكل جديد بطريقة سريعة وسهلة
مستنينكوا تنورونا , وده رابط القناة 👇
[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
ف كدا هعمل remove ل 3 container مره واحده
في العادي مينفعش احذف ال container وهو running لكن لو استخدمت ال option دا -f هقوله اعملي remove لل container وحتي لو Running انت اعمله stop واحذفه والامر بيكون كدا:
docker rm -f + container id