Docker Compose Complete Guide + Interview Questions

English + हिन्दी Version | TechWithAdi

What is Docker Compose?

Docker Compose is a tool used to define and manage multi-container Docker applications using a single YAML file.

Why Use Docker Compose?

  • Manage multiple containers easily
  • Single configuration file
  • Easy deployment and scaling
  • Ideal for development environments

Install Docker Compose

docker compose version

Sample docker-compose.yml

services:
  web:
    image: nginx
    ports:
      - "80:80"

Common Commands

docker compose up -d
docker compose ps
docker compose logs
docker compose restart
docker compose down

MySQL Example

services:
  mysql:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: root123

Top 20 Docker Compose Interview Questions

Q1. What is Docker Compose?

Tool for managing multi-container applications.

Q2. What is docker-compose.yml?

Configuration file defining services.

Q3. Difference between Docker and Docker Compose?

Docker runs containers, Compose manages multiple containers.

Q4. How to start services?

docker compose up -d

Q5. How to stop services?

docker compose down

Q6. How to check running services?

docker compose ps

Q7. How to view logs?

docker compose logs

Q8. What is a service?

A container definition inside compose file.

Q9. What is a volume?

Persistent storage for containers.

Q10. What is a network?

Allows communication between containers.

Q11. How to restart services?

docker compose restart

Q12. How to scale services?

docker compose up --scale service=3

Q13. What is depends_on?

Controls startup order.

Q14. How to expose ports?

Using ports section.

Q15. What are environment variables?

Variables passed to containers.

Q16. How to update containers?

Pull new image and recreate containers.

Q17. What is bind mount?

Maps host directory into container.

Q18. How to remove all services?

docker compose down

Q19. What are Compose benefits?

Easy deployment and management.

Q20. Explain Docker Compose workflow.

Define → Deploy → Manage → Remove.

Docker Compose क्या है?

Docker Compose एक tool है जो एक YAML file की मदद से multiple Docker containers को manage करता है।

Docker Compose क्यों उपयोग करते हैं?

  • Multiple containers आसानी से manage करने के लिए
  • Single configuration file
  • Easy deployment
  • Development environments के लिए उपयोगी

Docker Compose Install Check

docker compose version

Sample docker-compose.yml

services:
  web:
    image: nginx
    ports:
      - "80:80"

Common Commands

docker compose up -d
docker compose ps
docker compose logs
docker compose restart
docker compose down

Top 20 Docker Compose Interview Questions

प्रश्न 1. Docker Compose क्या है?

Multi-container applications manage करने का tool।

प्रश्न 2. docker-compose.yml क्या है?

Services define करने वाली configuration file।

प्रश्न 3. Docker और Docker Compose में अंतर?

Docker container चलाता है, Compose multiple containers manage करता है।

प्रश्न 4. Services कैसे start करें?

docker compose up -d

प्रश्न 5. Services कैसे stop करें?

docker compose down

प्रश्न 6. Running services कैसे देखें?

docker compose ps

प्रश्न 7. Logs कैसे देखें?

docker compose logs

प्रश्न 8. Service क्या होती है?

Compose file में container definition।

प्रश्न 9. Volume क्या होता है?

Persistent storage।

प्रश्न 10. Network क्या होता है?

Containers के बीच communication।

प्रश्न 11. Services restart कैसे करें?

docker compose restart

प्रश्न 12. Scale कैसे करें?

docker compose up --scale service=3

प्रश्न 13. depends_on क्या है?

Startup order control करता है।

प्रश्न 14. Ports कैसे expose करते हैं?

ports section से।

प्रश्न 15. Environment Variables क्या हैं?

Container को variables pass करने के लिए।

प्रश्न 16. Containers update कैसे करें?

New image pull करके recreate करें।

प्रश्न 17. Bind Mount क्या है?

Host directory को container में map करना।

प्रश्न 18. All services remove कैसे करें?

docker compose down

प्रश्न 19. Docker Compose के फायदे?

Easy deployment और management।

प्रश्न 20. Docker Compose workflow समझाइए।

Define → Deploy → Manage → Remove।