advanced-manufacturing-techniques
استخدام دوكر للطباعة السريعة وتطوير التطبيقات
Table of Contents
ما هو دوكر ولماذا يهم للبراتوبين السريع؟
وشركة دوكر هي منصة مفتوحة المصدر تتيح استخدام التطبيقات داخل الحاويات الخفيفة الوزن والحاويات المحمولة، وهذه الحاويات تجمع بين طلب وجميع معالوناتها - أي من الألقاب، وملفات التشكيل، وأجهزة الاستشعار التي تعمل على مدى الزمن والتي تُجرى على نحو متطابق بغض النظر عن البيئة المضيفة الأساسية، وهذا يعني أن المطورين يمكنهم أن يهيئوا بيئة وظيفية كاملة في ثوان، وأن يتقاسموها مع زملائهم من المسيل للدموعات.
الفكرة الأساسية وراء دوكر هي مفهوم ] المحتوي ]، وهو وحدة موحدة من البرامجيات تشمل كل ما يلزم لتشغيل تطبيق ما، خلافا للآلات الافتراضية التقليدية، تتقاسم الحاويات نظام التشغيل المضيف، مما يجعلها أكثر كفاءة من حيث الموارد وأسرع من البدء، وهذه الكفاءة تترجم مباشرة إلى حلقات تغذية سريعة أثناء التنمية وتبديلها.
ولا يمكن المبالغة في أهمية دوكر للاختبار السريع، وعندما تقومون باختبار فكرة جديدة أو تبني مفهوم دليل على ذلك، فإنكم تريدون التقليل إلى أدنى حد من وقت التجهيز وتعظيم سرعة التكرار، ويقضي دوكر على مشكلة " العمل على آليتي " التقليدية بتوفير بيئة متسقة من التنمية على طول الطريق من خلال الاختبار والإنتاج، ويمكن أن تتعاون الأفرقة على النماذج الأولية دون القلق بشأن النسخ غير المطابقة أو النزاعات.
For a deep dive into container fundamentals, see the Docker overview documentation.
الفوائد الرئيسية لدوكر للتنبؤ والتنمية
السرعة: توفير البيئة في الحالات
وكثيرا ما تتطلب إقامة مجموعات من التطويرات التقليدية تركيبا يدويا لقواعد البيانات، وفترات تشغيل اللغات، وخطوط الرسائل، وغيرها من الخدمات، ويمكن لهذه العملية أن تستغرق ساعات وتتفاوت في كثير من الأحيان بين نظم التشغيل، ومع دوكر، تحدد البيئة في ملف أو ، وتبني دوكر مجموعة كاملة من المواد الكيميائية في ثوان.
الاتساق عبر البيئات
ويعمل كل عضو في الفريق من نفس صورة الحاويات التي تُبنى من وصفة محددة بوضوح، وهذا يزيل الحشرات الخفية الناجمة عن اختلافات نظم التشغيل، أو نسخ مختلفة من مكتبات النظام، أو المعالين المفقودين، ويمكن تعزيز نفس الصورة التي تعبر عن اختباراتك في مجال التنمية لتصنيف وإنتاجها مع إدخال تغييرات صفرية على التشكيل.
العزلة بدون رأس
لأن كل حاوية تعمل في مكان معزول خاص بها للمستعملين يمكنك تشغيل نسخ متعددة من نفس البرمجيات جنبا إلى جنب، مثلاً، يمكنك اختبار نموذجك الأولي ضد كل من بايتون 3.9 وبيتون 3.12 في وقت واحد بدون نزاعات، وهذه العزلة قيمة بشكل خاص عندما ترسم هيكلاً للخدمات الدقيقة حيث تعيش كل خدمة في حاوية خاصة بها وتتواصل عبر تطبيقات محددة جيداً.
القابلية للتنقل وإعادة الإنتاج
وصورة دوكر هي قطعة أثرية محمولة يمكن تشغيلها على أي آلة مع شركة دوكر التي تم تركيبها - حاسوبك المحمول، أو جهاز تشغيل زميل، أو جهاز تشغيل تابع للشركة، أو جهاز سحابة VM. وهذا يجعل من قبيل المثلث تبادل نموذج مع أصحاب المصلحة أو تسليمه إلى فريق آخر لمواصلة التطوير، ويمكن لأي شخص لديه دوكر أن يسحب الصورة ويدير التطبيق نفسه دون أي خطوات يدوية.
إدارة الإعتماد المبسّطة
بدلاً من الاحتفاظ بوثائق طويلة عن كيفية تركيب وتخييط المعالين، تُدرج كل شيء في ملف دوكرفيلي، وتسمح لك الأدوات مثل مركب دوكر بتحديد التطبيقات المتعددة الخدمات (مثلاً خادم على شبكة الإنترنت، وقاعدة بيانات، وكاميرا) في ملف واحد، مما يقلل من الوقت المتاح لأعضاء الفريق الجدد ويضع نماذج لوثائق ذاتية.
بدأت مع (دوكر) من أجل "البراتوينغ السريع"
Install Docker
زيارة صفحة تركيب الداكرة الرسمية وتحميل النسخة المناسبة لنظام التشغيل الخاص بك، وهاكر ديسكب متاح لجهاز ماكوس وويندوز ولينكس، وعند تركيبه، التحقق من أنه يعمل عن طريق تشغيل في محطتك الطرفية.
خلق دوكرفايل
(دكرفيل) هو ملف نصي يتضمن تعليمات لبناء صورة (دوكر) ويبدأ بصور أساسية (مثلاً، [(FLT:4]) ثم يضيف رمز تطبيقك، وتركيب المعالين، ويحدد الأمر لإدارة الطلب، وهنا مثال ضئيل لتطبيق شبكة فلاسك على الإنترنت:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]
وضع هذا الملف في صلب دليل مشروعك إلى جانب ملفات و.
بناء الصورة
أدير القيادة التالية من الدليل المحتوي على "دوكرفيل"
docker build -t my-flask-app .
ويضع العلم الصورة بإسم () ويخبر النقطة دوكر باستخدام الدليل الحالي كسياق البناء، وسينفذ دوكر كل خط من خط الدكرفايل وينتج صورة لا تطاق.
تشغيل الحاويات
docker run -d -p 5000:5000 my-flask-app
ويدير العلم الحاوية في واسطة مفصَّلة (في الخلفية)، وخرائط موانئ 5000 على مضيفكم إلى الميناء 5000 في الحاوية، ويمكنكم الآن الوصول إلى تطبيق فلاسك في .
مثال: إعداد طلب على شبكة الإنترنت مع فلاسك ودكر
فلنمشي عبر مثال كامل لتوضيح كيف يعجل دوكر حلقة التكوين، وسنبني خدمة بسيطة على شبكة الإنترنت تعيد بيانات شركة " يوكون " ، باستخدام " فلاسك " (إطار للوزن الخفيف) وقاعدة بيانات محلية للشبكة.
هيكل المشروع
flask-prototype/
├── app.py
├── requirements.txt
└── Dockerfile
1- كتابة الطلب
app.py]
from flask import Flask, jsonify
import sqlite3
app = Flask(__name__)
def init_db():
conn = sqlite3.connect('data.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, name TEXT)''')
c.execute("INSERT OR IGNORE INTO items VALUES (1, 'Prototype item')")
conn.commit()
conn.close()
@app.route('/')
def home():
return jsonify({'message': 'Docker prototyping is fast!'})
@app.route('/items')
def get_items():
conn = sqlite3.connect('data.db')
c = conn.cursor()
c.execute('SELECT * FROM items')
items = [{'id': row[0], 'name': row[1]} for row in c.fetchall()]
conn.close()
return jsonify(items)
if __name__ == '__main__':
init_db()
app.run(host='0.0.0.0', port=5000)
]requirements.txt]
flask
Dockerfile] - كما هو مبين أعلاه.
2 - البناء والهرب
docker build -t flask-prototype .
docker run -d -p 5000:5000 --name proto flask-prototype
3- اختبار النموذج الأولي
فتح مصفوف أو استخدام :]
curl http://localhost:5000/
curl http://localhost:5000/items
سترى ردود (الجوسون) لأن قاعدة البيانات مخزنة داخل الحاوية كل مرة تدير فيها حاوية جديدة تبدأ بقاعدة بيانات جديدة
4 - سرعة الإرسال
(أ) أن تغير إلى ، ثم إعادة البناء والبدء من جديد:
docker build -t flask-prototype .
docker stop proto
docker rm proto
docker run -d -p 5000:5000 --name proto flask-prototype
هذه الدورة تستغرق بضع ثواني فقط وتعطيك ثقة كاملة بأن تغيراتك تجري في بيئة نظيفة
استخدام مركب دوكر للأنواع الأولية المتعددة الخدمات
وغالباً ما تتضمن نماذج العالم الحقيقي أكثر من خادم خدمة واحد، وقاعدة بيانات، وطبقة كاميرا، أو استفسار للرسالة، وكمبيوس دوكر يسمح لك بتحديد وإدارة تطبيقات متعددة المحتوى مع ملف واحد لليام.
مثال: فلاسك + PostgreSQL
docker-compose.yml]
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
environment:
- DATABASE_URL=postgresql://user:pass@db/mydb
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: mydb
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
ومع وجود هذا الملف في جذور المشروع، تشغيل لبدء الحاويتين، ويمكن أن يربط تطبيق فلاسك بالبريد SQL باستخدام اسم المضيف (ينشئ مجمع الدوكر تلقائيا شبكة) وهذا النهج يتيح لك النموذج الأولي معالين شبيهين بالإنتاج دون تركيب أي شيء محليا.
كما يدعم شركة دوكر كومبوس التكوين المفرط لمختلف البيئات (مثلاً، لأغراض التنمية)، وللمزيد من التفاصيل، يُقرأ [(FLT:0]]) وثائق مجمعات الدوكر .
أفضل الممارسات لـ (دوكر) في مجال التنميط
استخدام الصور الأساسية الصغيرة
For rapid builds and smaller attack surfaces, choose slim or Alpine-based images. For example, is much smaller than the full ] image, however, note that Alpine uses , which can cause incompatiities with some Python packages that require .
Leverage Layer Caching
(دكر) يُلقي كل طبقة من الصور، ويُصدر تعليمات بتغييرها في الأغلب (مثل تركيب مجموعات من النظم أو نسخها [(FLT:31])) بالقرب من قمة دوكرفيل، ويضع الرمز المتغير (مثل مصدر تطبيقك) في القاع، مما يقلل من أوقات إعادة البناء.
استخدام.
(ج) إنشاء ملف لاستبعاد الملفات غير الضرورية (مثلاً، ]، ، ) من سياق البناء، مما يعجل ببناءات ويقلل من حجم الصور.
صور تاغ ذات معنى
Use descriptive tags like or ] to track iterations. Avoid the tag for prototypes because it can be ambiguous.
موارد نظيفة
وكثيرا ما يترك التنوير السريع العديد من الحاويات المتوقفة، والصور غير المستخدمة، والأحجام المجهولة، والركض الدوري:
docker system prune -a --volumes
هذا يحرر مكان قرص ويبقي مجرى البيئة
Docker vs. Traditional Virtual Machines for Prototyping
وفي حين أن أجهزة التصوير المحتوية على صواريخ ثقيلة، فإنها ثقيلة الوزن: فهي تتطلب نظاماً كاملاً لتشغيل الضيوف، وتستهلك غيغابايت الذاكرة، وتأخذ دقائق للأحذية، من ناحية أخرى، وتستهلك الأحذية في الثانية الواحدة فقط الموارد اللازمة للطلب، أما بالنسبة للطباعة، حيث يمكن أن تدور بيئات كثيرة في وقت قصير، فإن الحاويات هي الرابح الوحيد الذي قد تكون فيه نماذج البرمجيات المفضلة مختلفة تماماً.
دمج (دوكر) في تدفق عملك
مراقبة الصور
إدفع صورك الأولية إلى سجل حاويات (سجل حاويات (دوكر هوب أو قلم حاويات غيت هوب أو سجل خاص) مما يجعل من السهل تبادلها مع المتعاونين ويكفل إمكانية الوصول إلى نموذجك حتى لو كانت آلتك المحلية غير مجهزة.
اختبارات آلية مع مركز التحقيقات/المركز
وفي مرحلة سريعة للاختبار، قد لا يكون لديك خط كامل للشحن، ولكن لا يزال بإمكانك الاستفادة من التحقق الآلي، فعلى سبيل المثال، يمكنك كتابة نص اختبار بسيط يدخل داخل الحاوية ويتحقق من نقطة النهاية لحزب النقل الوطني، ويمكن لأدوات مثل ] دوكر مع أعمال غيت هوب أن تبنى صورتك، وتجري الاختبارات وتدفعها تلقائياً على كل شيء.
إعادة تحميل ساخنة لأجهزة التردد السريع
أثناء التطوير، قد لا ترغبين بإعادة بناء الصورة بعد كل تغيير رمزي، قم بتعليق رمز المصدر كرقم مترابط بحيث تظهر التغييرات داخل الحاوية الجارية:
docker run -d -p 5000:5000 -v $(pwd):/app flask-prototype
ويجمع هذا مع خادم إنمائي يدعم تحميل السيارات (طريقة تطهير فلاك، على سبيل المثال) للحصول على تعليقات فورية.
الشلالات المشتركة وكيفية تجنبها
- Persisting Data Improperly:] Containers are ephemeral-when you remove a container, its filesystem is gone.
- Exposing Unnecessary Ports:] Only maps the ports your prototype needs. Exposing database ports to the public internet is a security risk even in prototyping.
- Hard —Coding Configuration:] Use environment variables and ] files to manage formation. This keeps your Dockerfile general and makes the prototype easy to deploy elsewhere.
- Ignoring Resource Limits:] By default, containers can use as many CPU and memory resources as the host allows. Set limits using and to prevent a runaway prototype from hunger other applications.
خاتمة
ويحول دوكر الطريقة التي يتبعها المطورون في وضع النماذج السريعة وتطوير التطبيقات، إذ إنه عن طريق توفير السرعة والاتساق والعزلة والقابلية للتنقل، يزيل العديد من نقاط الاحتكاك التي تبطئ التجارب في المراحل المبكرة، وسواء كنت تبني نموذجا أوليا متعدد الخدمات، أو اختبار محرك قاعدة بيانات جديدة، فإن دوكر يتركك تركز على مدونة قواعد البيانات بدلا من تهيئة بيئات متجانسة.
البداية الصغيرة: تُحفي تطبيقاً واحداً مع دوكرفيل، ثم تتوسع إلى تركيبات متعددة الحاويات مع شركة دوكر كبروز نموذجي، والاستثمار في تعلم دوكر يُسدد فوراً في دورات تهوية أسرع وأقل من المفاجئات " الأعمال على آلتي " ، ولمزيد من القراءة، تستكشف ] أفضل الممارسات في مجال تطوير المفرقعات [FLT:]
اخترقوا دوكر في سيركم للعمل على شكل ظاهر، وسوف تجدون نفسكم تشحنون برهاناً على مفهوم، وفي نهاية المطاف تطبيقات الإنتاج - أسرع مما كان عليه في أي وقت مضى.