Building & Publishing Images

Build custom Docker images from your Dockerfile and push them to public or private container registries like Docker Hub or GitHub Container Registry.

1. Creating `.dockerignore`

Just like .gitignore, create a .dockerignore file in your project root to prevent bloated local files (e.g. node_modules, logs, .git) from being copied into the build context:

# .dockerignore
node_modules
npm-debug.log
.git
.gitignore
.env
dist
coverage

2. Building an Image (`docker build`)

# Build image with tag (-t username/image-name:version)
docker build -t myusername/myapp:v1.0 .

# Build specifying a custom Dockerfile path
docker build -f Dockerfile.prod -t myusername/myapp:latest .

3. Publishing to Docker Hub (`docker push`)

# 1. Login to Docker Hub
docker login

# 2. Push image to repository
docker push myusername/myapp:v1.0
docker push myusername/myapp:latest

Next Up

Learn container lifecycle options: background mode (-d), interactive shell (-it), resource limits, and docker inspect.

Next Lesson: Container Lifecycle & Options →