🔄 One CLI, Multiple Docker Daemons
Docker CLI talks to local daemon. Docker context switches to remote daemon. Build on local, deploy to remote. No SSH or env vars.
📝 Create and Use Contexts
# List contexts docker context ls # Create context for remote Docker (with SSH) docker context create remote --docker host=ssh://user@remote-server # Create context for Docker Desktop docker context create desktop --docker host=unix:///var/run/docker.sock # Create context for cloud VM docker context create cloud --docker host=tcp://cloud-vm:2376 --docker ca=ca.pem --docker cert=cert.pem --docker key=key.pem # Switch context docker context use remote # Run commands (now on remote) docker ps docker build -t myapp . # Back to local docker context use default
🎯 Real-World Workflow
# Development (local) docker context use default docker build -t myapp:dev . docker run myapp:dev # Testing (staging server) docker context use staging docker build -t myapp:staging . docker push myapp:staging # Production (with SSH) docker context use prod docker pull myapp:prod docker-compose up -d
💡 Use Cases
- Build on powerful local machine, deploy to remote server
- Manage multiple cloud clusters from one CLI
- Test different Docker versions (contexts to different hosts)
- CI/CD runners switching between environments
“SSH to staging, run docker commands, exit. Docker context: docker context use staging; docker ps. No SSH. 3x faster. Game changer for ops.”
