docker-compose.yml:
name: alias
services:
shell:
image: alpine/curl
command: tail -f /dev/null
blue:
image: nginx
volumes:
- /tmp/alias/blue.html:/usr/share/nginx/html/index.html:ro
green:
image: nginx
volumes:
- /tmp/alias/green.html:/usr/share/nginx/html/index.html:ro*blue.html`:
blue*green.html`:
green-
Startup:
docker compose up -d -
Test connectivity
docker compose exec shell curl blue docker compose exec shell curl green -
Create network
docker network create bluegreen -
Connect
shellto network, so it can connect to other containersdocker network connect bluegreen alias-shell-1 -
Set current host
docker network connect bluegreen alias-blue-1 --alias current -
Test current
docker compose exec shell curl current # blue -
Switch to green
docker network connect bluegreen alias-green-1 --alias current docker network disconnect bluegreen alias-blue-1 docker compose exec shell curl current # green