DevOps
Docker Compose
Multi-container orchestration — services, ports, volumes, and networks.
CLI commands
docker compose up -dStart services in backgrounddocker compose downStop + remove containersdocker compose restartRestart all servicesdocker compose psList running servicesdocker compose logs -fFollow logsdocker compose buildBuild service imagesdocker compose exec web shShell into servicedocker compose configValidate compose fileservice: build
build: .Build from Dockerfile in cwdbuild:
context: ./dir
dockerfile: Dockerfile.devCustom Dockerfile pathimage: nginx:alpineUse pre-built imagebuild:
args:
APP_HOME: appPass build argsservice: ports & env
ports:
- "8000:80"Map host:container portexpose: ["3000"]Expose to linked services onlyenvironment:
KEY: valueInline env varsenv_file: .envLoad env vars from fileservice: volumes & restart
volumes:
- .:/appBind mountvolumes:
- db_data:/var/lib/dbNamed volumerestart: unless-stoppedAuto-restart policydepends_on:
- dbStart after dependencydepends_on:
db:
condition: service_healthyWait for health checkHealthcheck & networks
healthcheck:
test: ["CMD","curl","-f","http://localhost"]
interval: 30sHealth probenetworks:
frontend:Define custom networkdns:
- 8.8.8.8Custom DNS serverslabels:
app: myappMetadata labels