جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
أنظمة التشغيل 2 - المعمل 08
لماذا وجد Docker، وكتابة Dockerfile، وبناء الحاويات وتشغيلها
PostgreSQL/PostGIS + Redis + Angular) من كل مطور تثبيت إصدارات متوافقة من كل شيء يدويامحليا
تثبيت يدوي
الاختبار
تثبيت يدوي مرة أخرى
التجهيز (Staging)
تثبيت يدوي مرة أخرى
الإنتاج
تثبيت يدوي مرة أخرى
docker build -t myapp .
docker run myapp| مفهوم OOP | ما يعادله في Docker |
|---|---|
| الصنف / المخطط (Class / Blueprint) | صورة Docker (Image) |
| الكائن / النسخة (Object / Instance) | حاوية Docker (Container) |
Dockerfile، ويمكن أن تنتج صورة واحدة عدة حاويات قيد التشغيل.صورة Docker
الحاوية 1
الحاوية 2
الحاوية 3
Dockerfile تنشئ طبقة في الصورة الناتجةالصورة الأساسية node:14
WORKDIR /app
COPY package.json
RUN npm install
نسخ ملفات المصدر (COPY . .)
hub.docker.com) هو السجل العام لصور Docker - بمثابة GitHub الخاص بصور DockerNode.js وPHP وPython وPostgreSQL وRedis وnginx وغيرها-slim، و-alpine - نسخ Alpine أصغر بشكل كبير (حوالي 5 ميجابايت كصورة أساسية)| التعليمة | الغرض |
|---|---|
FROM | تحدد الصورة الأساسية |
WORKDIR | تحدد مجلد العمل داخل الحاوية |
COPY | تنسخ الملفات إلى الداخل |
RUN | تنفذ أمرا وقت البناء |
CMD | أمر بدء التشغيل |
EXPOSE | توثق منفذ الاستماع |
FROM node:14
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 4000
CMD ["npm", "start"]package.json ونفذ npm install قبل نسخ باقي الكود المصدريnpm install فقط عندما تتغير الاعتماديات فعليا، لا عند كل تعديل في الكودdocker build -t express-node-app .
docker image lsdocker run حاوية من صورة؛ أضف -d لتشغيلها منفصلة (detached) في الخلفيةEXPOSE 4000؟-pdocker run -d --name express-node-app-container -p 4000:4000 express-node-app-p host:container منفذا على الجهاز المضيف بمنفذ الحاوية - هنا 4000:4000| الأمر | الإجراء |
|---|---|
docker ps | الحاويات قيد التشغيل |
docker ps -a | كل الحاويات، بما فيها المتوقفة |
docker stop <name> | إيقاف حاوية قيد التشغيل |
docker rm <name> | حذف حاوية متوقفة |
docker rm -f <name> | إيقاف وحذف قسري بأمر واحد |
docker image ls | عرض الصور |
docker rmi <image> | حذف صورة، فقط إن لم تستخدمها أي حاوية |
docker logs <name> | عرض مخرجات حاوية |
FROM node:14-alpinedocker image ls بعد إعادة البناء بكل نسخةDockerfile تخزن مؤقتا - رتب التعليمات من الأقل تغيرا إلى الأكثر تغيرا لعمليات بناء أسرع-alpinedocker build الصورة؛ ويبدأها docker run -p host:container ويعرضها للجهاز المضيفdocker ps، وdocker stop، وdocker rm، وdocker rmi، وdocker logsMahmoud Abas|المعمل 08: مقدمة في Docker - الحاويات والصور