docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run -it ubuntu:latest /bin/bash
docker run -d nginx:latest
docker run -p 8080:80 nginx:latest
docker run --name my-container nginx:latest
docker run -v /host/path:/container/path nginx:latest
docker ps
docker ps -a
docker container ls
docker container ls -a
docker start CONTAINER_ID
docker stop CONTAINER_ID
docker restart CONTAINER_ID
docker pause CONTAINER_ID
docker unpause CONTAINER_ID
docker rm CONTAINER_ID
docker rm -f CONTAINER_ID
docker container prune
docker images
docker image ls
docker pull IMAGE_NAME:TAG
docker pull ubuntu:20.04
docker pull nginx:latest
docker build -t IMAGE_NAME:TAG .
docker build -t my-app:v1.0 .
docker build -f Dockerfile.prod -t my-app:prod .
docker rmi IMAGE_ID
docker rmi IMAGE_NAME:TAG
docker image prune
docker image prune -a
docker tag SOURCE_IMAGE:TAG TARGET_IMAGE:TAG
docker tag my-app:latest my-app:v1.0
docker exec -it CONTAINER_ID /bin/bash
docker exec -it CONTAINER_NAME sh
docker exec CONTAINER_ID ls -la
docker logs CONTAINER_ID
docker logs -f CONTAINER_ID
docker logs --tail 50 CONTAINER_ID
docker cp CONTAINER_ID:/path/to/file /host/path
docker cp /host/path CONTAINER_ID:/path/to/destination
docker inspect CONTAINER_ID
docker inspect IMAGE_ID
docker volume create VOLUME_NAME
docker volume ls
docker volume inspect VOLUME_NAME
docker volume rm VOLUME_NAME
docker volume prune
docker run -v VOLUME_NAME:/container/path IMAGE
docker run -v /host/path:/container/path IMAGE
docker run --mount source=VOLUME_NAME,target=/container/path IMAGE
docker network ls
docker network create NETWORK_NAME
docker network create --driver bridge my-network
docker network create --driver overlay my-overlay
docker network connect NETWORK_NAME CONTAINER_ID
docker network disconnect NETWORK_NAME CONTAINER_ID
docker network inspect NETWORK_NAME
docker network rm NETWORK_NAME
docker network prune
docker-compose up
docker-compose up -d
docker-compose up --build
docker-compose down
docker-compose down -v
docker-compose stop
docker-compose logs
docker-compose logs SERVICE_NAME
docker-compose up --scale SERVICE_NAME=3
docker-compose build
docker-compose build SERVICE_NAME
# Lab 1
docker run -it ubuntu:latest
docker run --name my-ubuntu -it ubuntu:latest
docker run -d --name web-server nginx:latest
docker ps
docker stop web-server
docker rm web-server
# Lab 2
docker run -d -p 8080:80 nginx:latest
docker run -d -p 8080:80 -p 8443:443 nginx:latest
docker run -d -p 127.0.0.1:8080:80 nginx:latest
# Lab 3
docker volume create my-data
docker run -d -v my-data:/var/lib/mysql mysql:latest
docker run -d -v /host/data:/var/lib/mysql mysql:latest
docker run -d -v /host/data:/var/lib/mysql:ro mysql:latest
# Lab 4
docker run -e MYSQL_ROOT_PASSWORD=secret mysql:latest
docker run -e NODE_ENV=production -e PORT=3000 node:latest
docker run --env-file .env mysql:latest
# Lab 5
docker network create --driver bridge my-network
docker run -d --name web --network my-network nginx:latest
docker run -d --name db --network my-network mysql:latest
docker network connect my-network existing-container
# Common Dockerfile
FROM ubuntu:20.04
WORKDIR /app
COPY . .
ADD archive.tar.gz /app/
RUN apt-get update && apt-get install -y \
package1 \
package2 \
&& rm -rf /var/lib/apt/lists/*
ENV NODE_ENV=production
ENV PORT=3000
EXPOSE 3000
RUN useradd -m appuser
USER appuser
ENTRYPOINT ["./entrypoint.sh"]
CMD ["npm", "start"]
# Multi-stage build
FROM node:16 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
FROM node:16-alpine
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY . .
USER node
CMD ["npm", "start"]
docker info
docker version
docker system df
docker system events
docker system prune
docker system prune -a
docker top CONTAINER_ID
docker stats
docker stats CONTAINER_ID
docker exec CONTAINER_ID ps aux
docker exec CONTAINER_ID df -h
docker exec CONTAINER_ID free -m
docker run --privileged IMAGE
docker run --dns=8.8.8.8 IMAGE
docker run -m 512m IMAGE
docker run --cpus="1.5" IMAGE
docker rm -f $(docker ps -aq)
docker rmi -f $(docker images -q)
docker login
docker login registry.example.com
docker push IMAGE_NAME:TAG
docker push registry.example.com/my-app:latest
docker pull registry.example.com/private-app:latest
docker tag my-app:latest registry.example.com/my-app:latest
docker run --security-opt no-new-privileges IMAGE
docker run --cap-drop ALL --cap-add NET_ADMIN IMAGE
docker run --read-only IMAGE
docker scan IMAGE_NAME
docker run -u 1000:1000 IMAGE
docker stats --no-stream
docker top CONTAINER_ID
docker events --filter container=CONTAINER_NAME
docker export CONTAINER_ID > container.tar
docker import container.tar NEW_IMAGE_NAME
โ This complete reference includes all essential and advanced Docker commands with enhanced visuals. Use it for KodeKloud labs or real-world projects!