Docker इमेज ऑप्टिमाइज़ करना

इंटरमीडिएट Docker

Mike Metzger

Data Engineering Consultant

Docker इमेज समझाएँ

  • Docker इमेज किसी भी कंटेनर का आधार होती हैं
  • कंटेनर इंस्टेंस को शुरुआत में मिलने वाली सारी सामग्री रखती हैं
इंटरमीडिएट Docker

Docker इमेज संबंधी चिंताएँ

  • हर संभावित कंपोनेंट इमेज में जोड़ना आकर्षक लगता है
  • साइज बड़ा और असुविधाजनक हो जाता है
  • डिपेंडेंसी के कारण सिक्योरिटी/अपडेट्स संभालना कठिन
  • बिना स्पेस/बैंडविड्थ बर्बाद किए कंटेनर मिलाना मुश्किल
इंटरमीडिएट Docker

Docker इमेज सिफारिशें

  • कंटेनरों को आवश्यक न्यूनतम हिस्सों में बाँटें
  • एक बड़ी इमेज बनाने से बेहतर है बाद में कई कंटेनर जोड़ना
  • जैसे
    • रीउस करने योग्य कंपोनेंट्स से बनाना
    • बनाम हर बार स्क्रैच से बनाना
  • किसी खास सॉफ्टवेयर के अपडेट से वही इमेज वाले कंटेनर प्रभावित होंगे, बाकी नहीं
  • साइज के लिए ऑप्टिमाइज़ कर सकते हैं, उपयोग और डिस्ट्रीब्यूशन आसान होता है
इंटरमीडिएट Docker

Docker इमेज ब्रेकडाउन उदाहरण

  • मान लें एक डेटा इंजीनियरिंग प्रोजेक्ट में यह सॉफ्टवेयर चाहिए:

    • Postgresql डेटाबेस
    • Python ETL सॉफ्टवेयर
    • वेब सर्वर सॉफ्टवेयर
  • एक सिंगल इमेज संभव है, पर ETL या वेब सर्वर में हर अपडेट पर इमेज अपडेट करनी होगी।

  • अगर एक और वेब सर्वर जोड़ना पड़े तो क्या होगा?
FROM ubuntu
RUN apt update
RUN apt install -y postgresql
RUN apt install -y nginx
RUN apt install -y python3.9
...
इंटरमीडिएट Docker

मिनिमाइज़्ड कंटेनरों के साथ उदाहरण

  • Docker के साथ बेहतर विकल्प
  • हर एक को अलग कंटेनर में बाँटें
    • Postgresql डेटाबेस कंटेनर
    • Python ETL कंपोनेंट्स
    • वेब सर्वर
  • उपयोग हेतु ऑप्टिमाइज़्ड कॉन्फ़िग बना सकते हैं, और ज़रूरत अनुसार कंपोनेंट जोड़/हटा सकते हैं
bash> docker run -d postgresql:latest

bash> docker run -d nginx:latest ...
इंटरमीडिएट Docker

इमेज साइज कैसे जानें

  • docker images का उपयोग करें
  • प्रत्येक इमेज का विवरण, साइज सहित, दिखता है
  • उन्नत विकल्प आगे कवर होंगे

bash> docker images

REPOSITORY      TAG              SIZE
postgres        latest           448MB
postgres        15               442MB
apache/airflow  2.7.1-python3.9  1.4GB
alpine          latest           7.73MB
इंटरमीडिएट Docker

अभ्यास करते हैं!

इंटरमीडिएट Docker

Preparing Video For Download...