Dockerfile and Docker Networks - Docker Series Part 3

في السلسلة دي، هنغطي أهم المفاهيم والأدوات والـ Commands اللي ليها علاقة بـ Docker بشكل بسيط وسهل عشان تقدر تستفيد منها بسرعة وتطبّقها في شغلك وهنتكلم المرادي عن الـ Docker Networks والـ Dockerfile وأهم الـ Commands.
Dockerfile and Docker Networks - Docker Series Part 3
Dockerfile and Docker Networks - Docker Series Part 3

في هذه الصفحة

المقدمة

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

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


Dockerfile

A blue whale and a blue boat

Description automatically generated

بعمل من خلاله image جديدة بناءا علي تعليمات انا هكتبها 

A diagram of a shipping process

Description automatically generated
A screenshot of a computer

Description automatically generated
  1. اول حاجه بكتبها داخل ال dockerfile هي FROM ubuntu وواخدة شكل FROM image:tag ودي بتحددلي ال base image ال هشتغل عليها فكدا هيفهم اني عاوز استخدم ال base image ال اسمها ubuntu وال version بتاعها latest
  2. تاني حاجه وهي ال RUN Command بنفذ من خلالها أي command انا محتاجه واكتر وليكن: RUN apt-get update أو مثلا Run apt-get install -y vim

    كدا استخدمت اكتر من RUN لكن مش بيفضل الطريقه دي لان كل سطر يعتبر Layer وكل ما عدد ال layer بيزيد ال size بتاع ال image بتزيد فممكن اكتب كل دا ف سطر واحد وليكن RUN apt-get update  && apt-git install -y vim
  3. تالت حاجه وهي ال CMD [“executable”,”param1”,”param2”] والاوامر دي بتبدا تتنفذ لما ال container يكون Running ولازم يكون في CMD واحد فقط لان لو فيه اكتر من واحد Docker هيشوف اخر CMD وهو دا ال هينفذه CMD [“echo”,”Hello Dockerfile”]

    ف كدا لما اعمل Run لل container دا هيطبعلي Hello Dockerfile
  4. رابع حاجه ممكن استخدها وهي EXPOSE port وده بيخليني افتح port معين لل user عشان يقدر يعمل access لل container عن طريق ال port دا

[root@mostata ~ ] vim Dockerfile

هعمل file واسمه Dockerfile ولازم يكون بالاسم دا 

FROM alpine
CMD [“echo”, “Hello Dockerfile]”

هكتب ال code بتاعي 

[root@mostata ~ ] docker build -t imagefile .

بعمل build ل  image اسمها imagefile من ال Dockerfile ال عملته ولازم اديله مسار ال dockerfile وعملت هما .  لاني واقف ف نفس المكان ال فيه ال Dockerfile والـ -t عشان ادي ال image اسم معين

[root@mostata ~ ] docker run –name image-file imagefile

بعمل container اسمه image-file من ال image ال اسمها imagefile فهينفذ ال command ال كنت عامله في ال code ال في ال Dockerfile 

FROM nginx
EXPOSE 80

بستخدم image اسمها nginx وعملت expose ل port مين وال port دا عشان استخدم ال container وليس ال host 

[root@mostata ~ ] docker build -t nginxpost .

بعمل build لل image من ال dockerfile اسمها nginxport

[root@mostata ~ ] docker run -it -d -p 8080:80 nginxpost

بقوله اعمل container من ال image ال اسمها nginxport وال port بتاع ال container دا هو 80  وال port بتاع ال host يكون 8088

A screenshot of a computer

Description automatically generated

ولما افتح ال ip علي ال port داه يفتح معايا ع ال welcome page بتاع nginx


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

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

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

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

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

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

https://t.me/eqraatechcom


Docker Network

الـ Docker Network: في اكتر من نوع لل Network داخل ال docker 

A screenshot of a computer

Description automatically generated

Bridge

اول ما بعمل install لل docker عندي ع ال host بتاعي بيعمل بداخله docker0 ودي ال بتساوي ال beridge وأول م بعمل container بشكل automatic بينشا بداخله eth0 وبيسحب ال ip بتاعه من ال docker0 دا 

لو ع ال host بتاعي عرضت ال ips ال عندي هلاقي ال docker0 رقم 3:

A computer screen with text

Description automatically generated
  • من خلال ال bridge بيحصل connection بين ال container وبعضها 
  • ال container يقدر يعمل connect ع اكتر من bridge 
  • ال default ip بيكون 172.17.0.0 وأول container بيسحب ip بيكون 172.17.0.2
A diagram of a computer network

Description automatically generated
[root@mostata ~ ] docker network ls

بعمل list بال network ال عندي في ال docker 

[root@mostata ~ ] docker network inspect bridge

بعرض معلومات اكتر عن ال network ال اسمها bridge 


Host

تاني نوع في ال network هو الـ -host : ودا بيستخدم نفس ال interface  بتاع ال host بتاعي.

A diagram of a server

Description automatically generated

None

تالت نوع هو الـ -None : بعزل ال Container عن ال network ومش بخليه واصل علي أي Network

A diagram of a computer

Description automatically generated

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

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