VOOZH about

URL: https://dev.to/kenryikegbo/-docker-cheat-sheet-commands-every-developer-should-know-1aj0

⇱ Docker Cheat Sheet: Commands Every Developer Should Know - DEV Community


Introduction

Docker helps you package an application with everything it needs to run: code, dependencies, environment variables, and runtime settings. This cheat sheet covers the most useful Docker commands for daily development.


1. Check Docker Installation

docker --version
docker info
docker help

2. Docker Images

List images

docker images

Pull an image

docker pull nginx
docker pull python:3.12
docker pull node:20

Remove an image

docker rmi image_name
docker rmi image_id

Build an image from a Dockerfile

docker build -t my-app .

Build with a specific Dockerfile

docker build -f Dockerfile.dev -t my-app-dev .

3. Docker Containers

Run a container

docker run nginx

Run container in detached mode

docker run -d nginx

Run container with a name

docker run --name my-nginx nginx

Run container and map ports

docker run -p 8080:80 nginx

This maps port 8080 on your computer to port 80 inside the container.

Run container with environment variables

docker run -e APP_ENV=development my-app

Run container interactively

docker run -it ubuntu bash

4. List Containers

Running containers

docker ps

All containers

docker ps -a

5. Stop, Start, Restart Containers

docker stop container_name
docker start container_name
docker restart container_name

6. Remove Containers

Remove one container

docker rm container_name

Remove all stopped containers

docker container prune

7. Logs and Debugging

View logs

docker logs container_name

Follow logs live

docker logs -f container_name

Enter a running container

docker exec -it container_name bash

If bash is not available:

docker exec -it container_name sh

Inspect container details

docker inspect container_name

8. Volumes

Volumes help you persist data outside the container.

Create a volume

docker volume create my-volume

List volumes

docker volume ls

Use a volume

docker run -v my-volume:/app/data my-app

Remove a volume

docker volume rm my-volume

Remove unused volumes

docker volume prune

9. Bind Mounts

Bind mounts connect a folder on your computer to a folder inside the container.

docker run -v $(pwd):/app my-app

On Windows PowerShell:

dockerrun-v${PWD}:/appmy-app

10. Networks

List networks

docker network ls

Create a network

docker network create my-network

Run container on a network

docker run --network my-network --name app my-app

Remove a network

docker network rm my-network

11. Dockerfile Example

FROM python:3.12-slim

WORKDIR /app

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8000

CMD ["python", "app.py"]

12. Docker Compose

Docker Compose helps you run multiple containers together.

Example docker-compose.yml

services:
 app:
 build: .
 ports:
 - "8000:8000"
 environment:
 - APP_ENV=development
 volumes:
 - .:/app

 database:
 image: postgres:16
 environment:
 - POSTGRES_USER=admin
 - POSTGRES_PASSWORD=password
 - POSTGRES_DB=mydb
 ports:
 - "5432:5432"

Start services

docker compose up

Start in detached mode

docker compose up -d

Stop services

docker compose down

Rebuild services

docker compose up --build

View logs

docker compose logs
docker compose logs -f

13. Cleaning Up Docker

Remove unused data

docker system prune

Remove unused data including images

docker system prune -a

Remove unused containers

docker container prune

Remove unused images

docker image prune

Remove unused volumes

docker volume prune

Be careful with prune commands because they delete unused Docker resources.


14. Common Docker Commands Summary

docker build -t my-app .
docker run -p 8000:8000 my-app
docker ps
docker ps -a
docker stop container_name
docker start container_name
docker restart container_name
docker rm container_name
docker rmi image_name
docker logs -f container_name
docker exec -it container_name bash
docker system prune

15. Useful Docker Compose Commands Summary

docker compose up
docker compose up -d
docker compose down
docker compose up --build
docker compose logs -f
docker compose ps
docker compose exec app bash

Final Note

Docker is powerful because it makes your application easier to run, share, test, and deploy. Once you understand images, containers, volumes, networks, and Docker Compose, you can package almost any application into a reproducible environment.