Docker Compose: বেসিক এবং ব্যবহার

Docker Compose এর উপর ভিত্তি করে অ্যাপ্লিকেশন পরিচালনা এবং স্থাপনের জন্য ব্যবহৃত একটি শক্তিশালী এবং জনপ্রিয় টুল Docker । Docker এটি আপনাকে একক প্রকল্প হিসাবে একাধিক পাত্রকে সংজ্ঞায়িত করতে, কনফিগার করতে এবং চালানোর অনুমতি দেয়, অ্যাপ্লিকেশন স্থাপনাকে সহজ করে এবং উন্নয়ন এবং উত্পাদন পরিবেশের মধ্যে সামঞ্জস্য নিশ্চিত করে।

নীচে কিছু ধারণা এবং উদাহরণ দেওয়া হল Docker Compose:

docker-compose.yml ফাইল ব্যবহার করে প্রকল্পটি সংজ্ঞায়িত করুন

ফাইলটিতে docker-compose.yml, আপনি আপনার অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় পরিষেবাগুলি সংজ্ঞায়িত করতে পারেন। উদাহরণস্বরূপ, একটি MySQL ডাটাবেসের সাথে একটি PHP ওয়েব অ্যাপ্লিকেশন স্থাপন করতে, আপনি দুটি পরিষেবাকে নিম্নরূপ সংজ্ঞায়িত করতে পারেন:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "80:80"  
    volumes:  
   - ./app:/var/www/html  
  
  db:  
    image: mysql:5.7  
    environment:  
      MYSQL_ROOT_PASSWORD: password  
      MYSQL_DATABASE: my_database  

উপরের কোড স্নিপেটে, আমরা দুটি পরিষেবা সংজ্ঞায়িত করি: web এবং db. পরিষেবাটি web PHP 7.4 image এর সাথে ব্যবহার করবে Apache, পোর্ট 80-এ শুনবে এবং ./app হোস্ট থেকে ডিরেক্টরিতে ডিরেক্টরিতে /var/www/html মাউন্ট করবে container । পরিষেবাটি db MySQL 5.7 ব্যবহার করবে image এবং ডাটাবেসের জন্য প্রয়োজনীয় কিছু পরিবেশ ভেরিয়েবল সেট করবে।

 

Docker Compose কমান্ড ব্যবহার করে

একবার আপনি ফাইলটিতে প্রকল্পটি সংজ্ঞায়িত করলে docker-compose.yml, আপনি Docker Compose পরিষেবাগুলি পরিচালনা করতে কমান্ড ব্যবহার করতে পারেন।

  • প্রকল্প শুরু করুন: docker-compose up

    এই কমান্ডটি ফাইলে সংজ্ঞায়িত পরিষেবাগুলির জন্য কন্টেইনারগুলি শুরু করবে docker-compose.yml

  • বন্ধ করুন এবং পাত্রে সরান: docker-compose down

    এই কমান্ডটি প্রকল্পের সাথে সম্পর্কিত সমস্ত কন্টেইনার বন্ধ করে এবং সরিয়ে দেয়।

  • চলমান পাত্রের তালিকা করুন: docker-compose ps

    এই কমান্ডটি প্রকল্পের কন্টেইনারগুলির অবস্থা প্রদর্শন করবে।

  • পরিষেবা লগগুলি দেখুন: docker-compose logs

    এই কমান্ডটি প্রকল্পের পরিষেবাগুলির লগগুলি দেখায়।

 

এনভায়রনমেন্ট ভেরিয়েবল এবং কাস্টমাইজেশন

Docker Compose বিভিন্ন পরিবেশের জন্য কনফিগারেশন কাস্টমাইজ করতে আপনাকে পরিবেশ ভেরিয়েবল ব্যবহার করতে দেয়, যেমন ডেভেলপমেন্ট এবং প্রোডাকশন। আপনি ফাইলে পরিবেশ ভেরিয়েবল ব্যবহার করতে পারেন docker-compose.yml এবং সংশ্লিষ্ট .env ফাইলগুলিতে তাদের মান নির্ধারণ করতে পারেন।

উদাহরণস্বরূপ, যদি আপনি পরিষেবার পোর্টের জন্য একটি পরিবেশ পরিবর্তনশীল সংজ্ঞায়িত করতে চান web, আপনি ফাইলটিতে একটি লাইন যুক্ত করতে পারেন .env:

WEB_PORT=8080

তারপরে, ফাইলটিতে docker-compose.yml, আপনি এই পরিবেশ পরিবর্তনশীলটি ব্যবহার করতে পারেন:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

কমান্ড চালানোর সময় docker-compose up, web পরিষেবাটি পোর্ট 80-এর পরিবর্তে পোর্ট 8080-এ শুনবে।

 

Docker সোয়ামের সাথে একীভূত হচ্ছে

আপনি যদি একাধিক নোড সহ একটি বিতরণ করা পরিবেশে আপনার অ্যাপ্লিকেশন স্থাপন করতে চান তবে Docker Compose এর সাথে সংহত করতে পারেন Docker Swarm । এটি আপনাকে একটি ক্লাস্টারে একাধিক নোড জুড়ে পরিষেবাগুলি পরিচালনা করতে দেয় Docker ।

এই ইন্টিগ্রেশনটি ব্যবহার করার জন্য, পরিবেশে চলমান বা কমান্ডের সময় আপনাকে কেবল --orchestrate বা বিকল্পগুলি যোগ করতে হবে । --with-registry-auth docker stack deploy docker-compose up Swarm

 

Docker Compose সহজ এবং দক্ষ অ্যাপ্লিকেশন উন্নয়ন, পরীক্ষা, এবং স্থাপনার জন্য একটি দরকারী টুল। এটি উন্নয়ন এবং উৎপাদন পরিবেশের মধ্যে পার্থক্য কমিয়ে দেয়, সফ্টওয়্যার উন্নয়ন প্রক্রিয়ায় ধারাবাহিকতা নিশ্চিত করে এবং উন্নয়ন দলগুলোর উৎপাদনশীলতা বাড়ায়।