π·οΈ Image Tags = Versioning
Images need versions. Image tags version your images. Latest, v1.0.0, SHA β track changes.
π Tag Commands
# Tag an image docker tag myapp:latest myapp:v1.0.0 # Tag for registry docker tag myapp:latest username/myapp:v1.0.0 # Multiple tags docker tag myapp:latest myapp:latest docker tag myapp:latest myapp:v1.0.0 docker tag myapp:latest myapp:v1.0.0-production # View tags docker image ls docker image ls myapp # Pull specific tag docker pull myapp:v1.0.0 docker pull username/myapp:v1.0.0 # Push tagged image docker push username/myapp:v1.0.0 docker push username/myapp:latest # Tagging best practices # Use semantic versioning myapp:1.0.0 myapp:1.0.0-alpha myapp:1.0.0-rc1 myapp:latest # Use commit SHA (CI/CD) myapp:abc1234 myapp:$(git rev-parse --short HEAD) # Use environment tags myapp:production myapp:staging myapp:development
π― Tagging Strategies
# Semantic Versioning
v1.0.0 # Major.Minor.Patch
v1.0.0-alpha.1 # Pre-release
v1.0.0-beta.2 # Pre-release
v1.0.0-rc.1 # Release candidate
# Environment Tags
production
staging
development
qa
# Git Integration
# Tag with commit SHA
docker build -t myapp:$(git rev-parse --short HEAD) .
# Tag with version from package.json
VERSION=$(node -p "require('./package.json').version")
docker build -t myapp:$VERSION .
# Tag with date
docker build -t myapp:$(date +%Y%m%d) .
# Remove old tags
docker rmi myapp:old-tag
# Tag management
# List all tags
docker image ls --filter reference=myapp
# Remove untagged images
docker image prune
# CI/CD Pipeline
- Build
- Tag with commit SHA
- Tag with version
- Push to registry
- Deploy specific tag
# Tagging Tips
- Use semantic versioning
- Tag all production images
- Use latest tag carefully
- Use commit SHA for traceability
- Clean up old tags
π‘ Tagging Tips
- Use semantic versioning
- Tag all production images
- Use latest tag carefully
- Use commit SHA for traceability
- Clean up old tags
“Image tags version your images. Semantic versioning, commit SHA. Essential for image management.”
