Docker Build, Tag, Push Commands

Quick reference for building, tagging, and pushing Docker images to EBRAINS Docker Registry.

Build Image

Basic Build

Build with Context

Example Build Output

Tag Image

Tag Format for EBRAINS Registry

Single Tag

Multiple Tags (Semantic Versioning Strategy)

Environment-Based Tags

List Image Tags

Push Image

Push Single Tag

Push Multiple Tags

Push with Script

Complete Workflow Examples

Development Build and Push

Production Release

Multi-Architecture Build

Tagging Strategy Recommendations

Tag TypeFormatPurposeExampleUse Case
Semantic VersionMAJOR.MINOR.PATCHPin exact version2.1.3Production (no auto-updates)
Major.MinorMAJOR.MINORAuto-update patches2.1Staging (get bug fixes)
MajorMAJORAuto-update minor2Development (brave)
latestlatestLatest stablelatestDevelopment/Testing
EnvironmentenvEnvironment-specificprod, staging, devDeployment targets
Git SHAcommit-shaExact buildabc123fDebugging/Rollback
Pre-releaseVERSION-labelTesting versions2.0.0-beta.1Beta testing

Build Arguments

Define Build Args in Dockerfile

Pass Build Args

Image Management

List Images

Remove Images

Inspect Image

Troubleshooting

Build Fails - No Space Left

Tag Already Exists Remotely

Push Denied

Image Too Large

Best Practices

Do

  • Use specific base image versions (e.g., python:3.11-slim, not python:latest)
  • Tag with semantic versions for releases
  • Use multi-stage builds to reduce image size
  • Create .dockerignore to exclude unnecessary files
  • Tag with Git commit SHA for traceability
  • Use layer caching effectively (copy dependencies first)

Don’t

  • Don’t use latest tag in production
  • Don’t include secrets in images (use environment variables)
  • Don’t run as root user in containers
  • Don’t store data in containers (use volumes)
  • Don’t ignore build warnings
  • Don’t skip security scanning

Related Documentation