Docker Compose संपूर्ण मार्गदर्शक

प्रत्येक सेवेसाठी मॅन्युअल Docker कमांड्स चालवणे थांबवा.

जर तुम्ही एखादे आधुनिक ॲप्लिकेशन चालवत असाल, तर तुमच्याकडे बहुधा frontend, backend, database आणि cache असेल. हे एक-एक करून चालवणे संथ आहे आणि त्यात चुका होण्याची शक्यता असते.

Docker Compose याचे निराकरण करते. तुम्ही तुमचे संपूर्ण स्टॅक एका YAML फाईलमध्ये परिभाषित करू शकता आणि एका कमांडने सर्व काही सुरू करू शकता.

मूलभूत गोष्टी

  • Compose शिवाय: तुम्ही चार कंटेनर्ससाठी चार वेगवेगळ्या कमांड्स चालवता.
  • Compose सह: तुम्ही "docker compose up" चालवता आणि सर्व काही सुरू होते.

महत्त्वाच्या संकल्पना

• Services: प्रत्येक service एका कंटेनरचे प्रतिनिधित्व करते. तुम्ही तुमच्या स्वतःच्या कोडसाठी "build" किंवा PostgreSQL किंवा Redis सारख्या प्री-बिल्ट टूल्ससाठी "image" वापरू शकता. • Port Mapping: HOST:CONTAINER हा फॉरमॅट वापरा. हे तुमच्या कॉम्प्युटरचा पोर्ट कंटेनर पोर्टला मॅप करते. • Environment Variables: साध्या व्हॅल्यूजसाठी "environment" वापरा किंवा सीक्रेट्स (secrets) एका वेगळ्या .env फाईलमध्ये ठेवण्यासाठी "env_file" वापरा. • Volumes: तुमचा डेटा सुरक्षित ठेवण्यासाठी volumes वापरा. Volumes शिवाय, कंटेनर थांबल्यावर तुमचा डेटाबेस डेटा निघून जातो. • Networks: Compose आपोआप एक नेटवर्क तयार करते. कंटेनर्स localhost ऐवजी त्यांच्या service names चा वापर करून एकमेकांशी संवाद साधतात. • Depends_on: हे स्टार्टअपचा क्रम ठरवते. हे Docker ला backend च्या आधी database सुरू करण्यास सांगते. लक्षात ठेवा की, हे डेटाबेस पूर्णपणे तयार होण्याची वाट पाहत नाही.

मुलाखतीसाठी टिप्स

  • build विरुद्ध image कधी वापरावे? तुमच्या कस्टम ॲप्लिकेशनसाठी "build" वापरा. Docker Hub वरील अस्तित्वात असलेल्या टूल्ससाठी "image" वापरा.
  • कंटेनर्स एकमेकांशी संवाद कसा साधतात? ते Docker नेटवर्कमध्ये hostname म्हणून service names वापरतात.
  • डेटा लॉस कसा टाळावा? डेटाबेससाठी नेहमी named volumes वापरा.
  • सीक्रेट्स (secrets) कसे हाताळावे? ते कधीही हार्डकोड करू नका. .env फाईल वापरा.

टाळल्या पाहिजेत अशा सामान्य चुका

  • "latest" टॅग वापरणे: यामुळे अनपेक्षित अपडेट्स होऊ शकतात. "postgres:16" सारखे विशिष्ट व्हर्जन वापरा.
  • localhost वापरणे: कंटेनर्स एकमेकांना localhost द्वारे पाहू शकत नाहीत. service name वापरा.
  • Healthchecks नसणे: तुमची सेवा खरोखर काम करण्यास तयार आहे की नाही हे तपासण्यासाठी healthchecks वापरा.

स्रोत: https://dev.to/adityaguptareal/docker-compose-complete-guide-1gac