في هذه الصفحة
المقدمة
لو بتدور على طريقة سهلة وفعّالة عشان تدير بيها التطبيقات بتاعتك، فمفيش شك إن Docker هيكون من أهم الأدوات اللي هتساعدك لتحقيق ده. Docker هو أداة قوية جدًا تقدر تعملها بيها حاويات Containers، ودي زي بيئة معزولة بتشغل فيها التطبيقات بتاعتك.
وفي السلسلة دي، هنغطي أهم المفاهيم والأدوات والـ Commands اللي ليها علاقة بـ Docker بشكل بسيط وسهل عشان تقدر تستفيد منها بسرعة وتطبّقها في شغلك.
Dockerfile
بعمل من خلاله image جديدة بناءا علي تعليمات انا هكتبها
- اول حاجه بكتبها داخل ال dockerfile هي
FROM ubuntu
وواخدة شكلFROM image:tag
ودي بتحددلي ال base image ال هشتغل عليها فكدا هيفهم اني عاوز استخدم ال base image ال اسمها ubuntu وال version بتاعها latest - تاني حاجه وهي ال
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
- تالت حاجه وهي ال
CMD [“executable”,”param1”,”param2”]
والاوامر دي بتبدا تتنفذ لما ال container يكون Running ولازم يكون في CMD واحد فقط لان لو فيه اكتر من واحد Docker هيشوف اخر CMD وهو دا ال هينفذهCMD [“echo”,”Hello Dockerfile”]
ف كدا لما اعمل Run لل container دا هيطبعلي Hello Dockerfile - رابع حاجه ممكن استخدها وهي
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
ولما افتح ال ip علي ال port داه يفتح معايا ع ال welcome page بتاع nginx
تقدروا دلوقتي تشتركوا في النشرة الأسبوعية لاقرأ-تِك بشكل مجاني تمامًا عشان يجيلكوا كل جديد بشكل أسبوعي فيما يخص مواضيع متنوعة وبشروحات بسيطة وسهلة وبجودة عالية 🚀
النشرة هيكون ليها شكل جديد ومختلف عن شكلها القديم وهنحاول انها تكون مميزة ومختلفة وخليط بين المحتوى الأساسي اللي بينزل ومفاجآت تانية كتير 🎉
بفضل الله قمنا بإطلاق قناة اقرأ-تِك على التليجرام مجانًا للجميع 🚀
آملين بده اننا نفتح باب تاني لتحقيق رؤيتنا نحو إثراء المحتوى التقني باللغة العربية ، ومساعدة لكل متابعينا في انهم يوصلوا لجميع أخبار اقرأ-تِك من حيث المقالات ومحتوى ورقة وقلم والنشرة الأسبوعية وكل جديد بطريقة سريعة وسهلة
مستنينكوا تنورونا , وده رابط القناة 👇
Docker Network
الـ Docker Network: في اكتر من نوع لل Network داخل ال docker
Bridge
اول ما بعمل install لل docker عندي ع ال host بتاعي بيعمل بداخله docker0 ودي ال بتساوي ال beridge وأول م بعمل container بشكل automatic بينشا بداخله eth0 وبيسحب ال ip بتاعه من ال docker0 دا
لو ع ال host بتاعي عرضت ال ips ال عندي هلاقي ال docker0 رقم 3:
- من خلال ال bridge بيحصل connection بين ال container وبعضها
- ال container يقدر يعمل connect ع اكتر من bridge
- ال default ip بيكون 172.17.0.0 وأول container بيسحب ip بيكون 172.17.0.2
[root@mostata ~ ] docker network ls
بعمل list بال network ال عندي في ال docker
[root@mostata ~ ] docker network inspect bridge
بعرض معلومات اكتر عن ال network ال اسمها bridge
Host
تاني نوع في ال network هو الـ -host : ودا بيستخدم نفس ال interface بتاع ال host بتاعي.
None
تالت نوع هو الـ -None : بعزل ال Container عن ال network ومش بخليه واصل علي أي Network