Docker Compose — Verify Compose Installation
After installation, verify everything works correctly. This page walks you through a complete verification — from checking the version to running your first compose stack.
Step 1 — Check the Version
docker compose version
Expected output:
Docker Compose version v2.24.0
If you see docker: 'compose' is not a docker command, the plugin isn’t installed. Go back to Install Compose V2.
Step 2 — Check Docker Engine
Compose needs Docker Engine running:
docker info --format '{{.ServerVersion}}'
Expected output:
24.0.7
If Docker isn’t running, start it:
# Linux
sudo systemctl start docker
# Mac/Windows — open Docker Desktop
Step 3 — Run a Test Stack
Create a temporary directory and test compose:
mkdir -p /tmp/compose-test && cd /tmp/compose-test
Create a minimal compose.yml:
cat > compose.yml << 'EOF'
services:
hello:
image: alpine:latest
command: echo "Docker Compose is working!"
EOF
Run it:
docker compose up
Expected output:
[+] Running 2/2
✔ Network compose-test_default Created
✔ Container compose-test-hello-1 Created
Attaching to hello-1
hello-1 | Docker Compose is working!
hello-1 exited with code 0
Clean up:
docker compose down
cd ~ && rm -rf /tmp/compose-test
Step 4 — Check Plugin Location
See where the Compose plugin is installed:
# On Linux/Mac
ls -la ~/.docker/cli-plugins/docker-compose 2>/dev/null || \
ls -la /usr/libexec/docker/cli-plugins/docker-compose 2>/dev/null || \
echo "Check Docker Desktop installation"
Step 5 — List Available Commands
docker compose --help
Expected output (abbreviated):
Usage: docker compose [OPTIONS] COMMAND
Define and run multi-container applications with Docker
Commands:
build Build or rebuild services
config Parse, resolve and render compose file
cp Copy files/folders between service and local filesystem
down Stop and remove containers, networks
events Receive real time events from containers
exec Execute a command in a running container
logs View output from containers
ls List running compose projects
pause Pause services
ps List containers
pull Pull service images
push Push service images
restart Restart service containers
rm Removes stopped service containers
run Run a one-off command on a service
start Start services
stop Stop services
top Display the running processes
up Create and start containers
version Show the Docker Compose version
watch Watch build context for service and rebuild/refresh
Troubleshooting Installation
| Problem | Solution |
|---|---|
'compose' is not a docker command |
Install the compose plugin |
permission denied on Linux |
Add user to docker group: sudo usermod -aG docker $USER |
| Old version (< 2.20) | Update Docker Desktop or reinstall the plugin |
Cannot connect to Docker daemon |
Start Docker: sudo systemctl start docker |
Summary
| Check | Command | Expected |
|---|---|---|
| Version | docker compose version |
v2.20+ |
| Docker running | docker info |
Server version shown |
| Test stack | docker compose up |
“working!” message |
| Help | docker compose --help |
Command list |
Quick Reference
| Item | Detail |
|---|---|
| Version check | docker compose version |
| Docker check | docker info |
| Test stack | Create compose.yml with alpine echo test |
| Plugin path | ~/.docker/cli-plugins/docker-compose |
| Help system | docker compose –help |
| Subcommand help | docker compose up –help |