v1.0.0

Docker Essentials

Arnarsson Arnarsson ← All skills

Essential Docker commands and workflows for container management, image operations, and debugging.

Downloads
6.4k
Stars
5
Versions
1
Updated
2026-02-23

Install

npx clawhub@latest install docker-essentials

Documentation

Docker Essentials

Essential Docker commands for container and image management.

Container Lifecycle

Running containers

Run container from image

docker run nginx

Run in background (detached)

docker run -d nginx

Run with name

docker run --name my-nginx -d nginx

Run with port mapping

docker run -p 8080:80 -d nginx

Run with environment variables

docker run -e MY_VAR=value -d app

Run with volume mount

docker run -v /host/path:/container/path -d app

Run with auto-remove on exit

docker run --rm alpine echo "Hello"

Interactive terminal

docker run -it ubuntu bash

Managing containers

List running containers

docker ps

List all containers (including stopped)

docker ps -a

Stop container

docker stop container_name

Start stopped container

docker start container_name

Restart container

docker restart container_name

Remove container

docker rm container_name

Force remove running container

docker rm -f container_name

Remove all stopped containers

docker container prune

Container Inspection & Debugging

Viewing logs

Show logs

docker logs container_name

Follow logs (like tail -f)

docker logs -f container_name

Last 100 lines

docker logs --tail 100 container_name

Logs with timestamps

docker logs -t container_name

Executing commands

Execute command in running container

docker exec container_name ls -la

Interactive shell

docker exec -it container_name bash

Execute as specific user

docker exec -u root -it container_name bash

Execute with environment variable

docker exec -e VAR=value container_name env

Inspection

Inspect container details

docker inspect container_name

Get specific field (JSON path)

docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name

View container stats

docker stats

View specific container stats

docker stats container_name

View processes in container

docker top container_name

Image Management

Building images

Build from Dockerfile

docker build -t myapp:1.0 .

Build with custom Dockerfile

docker build -f Dockerfile.dev -t myapp:dev .

Build with build args

docker build --build-arg VERSION=1.0 -t myapp .

Build without cache

docker build --no-cache -t myapp .

Managing images

List images

docker images

Pull image from registry

docker pull nginx:latest

Tag image

docker tag myapp:1.0 myapp:latest

Push to registry

docker push myrepo/myapp:1.0

Remove image

docker rmi image_name

Remove unused images

docker image prune

Remove all unused images

docker image prune -a

Docker Compose

Basic operations

Start services

docker-compose up

Start in background

docker-compose up -d

Stop services

docker-compose down

Stop and remove volumes

docker-compose down -v

View logs

docker-compose logs

Follow logs for specific service

docker-compose logs -f web

Scale service

docker-compose up -d --scale web=3

Service management

List services

docker-compose ps

Execute command in service

docker-compose exec web bash

Restart service

docker-compose restart web

Rebuild service

docker-compose build web

Rebuild and restart

docker-compose up -d --build

Networking

List networks

docker network ls

Create network

docker network create mynetwork

Connect container to network

docker network connect mynetwork container_name

Disconnect from network

docker network disconnect mynetwork container_name

Inspect network

docker network inspect mynetwork

Remove network

docker network rm mynetwork

Volumes

List volumes

docker volume ls

Create volume

docker volume create myvolume

Inspect volume

docker volume inspect myvolume

Remove volume

docker volume rm myvolume

Remove unused volumes

docker volume prune

Run with volume

docker run -v myvolume:/data -d app

System Management

View disk usage

docker system df

Clean up everything unused

docker system prune

Clean up including unused images

docker system prune -a

Clean up including volumes

docker system prune --volumes

Show Docker info

docker info

Show Docker version

docker version

Common Workflows

Development container:
docker run -it --rm \

-v $(pwd):/app \

-w /app \

-p 3000:3000 \

node:18 \

npm run dev

Database container:
docker run -d \

--name postgres \

-e POSTGRES_PASSWORD=secret \

-e POSTGRES_DB=mydb \

-v postgres-data:/var/lib/postgresql/data \

-p 5432:5432 \

postgres:15

Quick debugging:

Shell into running container

docker exec -it container_name sh

Copy file from container

docker cp container_name:/path/to/file ./local/path

Copy file to container

docker cp ./local/file container_name:/path/in/container

Multi-stage build:

Dockerfile

FROM node:18 AS builder

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build

FROM nginx:alpine

COPY --from=builder /app/dist /usr/share/nginx/html

Useful Flags

docker run flags:
  • --d: Detached mode (background)
  • --it: Interactive terminal
  • --p: Port mapping (host:container)
  • --v: Volume mount
  • --e: Environment variable
  • ---name: Container name
  • ---rm: Auto-remove on exit
  • ---network: Connect to network
docker exec flags:
  • --it: Interactive terminal
  • --u: User
  • --w: Working directory

Tips

  • -Use .dockerignore to exclude files from build context
  • -Combine RUN commands in Dockerfile to reduce layers
  • -Use multi-stage builds to reduce image size
  • -Always tag your images with versions
  • -Use --rm for one-off containers
  • -Use docker-compose for multi-container apps
  • -Clean up regularly with docker system prune

Documentation

Official docs: https://docs.docker.com/

Dockerfile reference: https://docs.docker.com/engine/reference/builder/

Compose file reference: https://docs.docker.com/compose/compose-file/

Launch an agent with Docker Essentials on Termo.