๐Ÿšข Complete Docker Commands Reference for KodeKloud Labs

๐Ÿ“ฆ Basic Docker Commands

โ–ถ๏ธ Container Management

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

๐Ÿ–ผ๏ธ Image Management

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

๐Ÿ”ง Container Interaction

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

โš™๏ธ Advanced Docker Commands

๐Ÿ—‚๏ธ Volume Management

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

๐ŸŒ Network Management

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

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

๐Ÿงช Common KodeKloud Lab Solutions

# 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

๐Ÿ“„ Dockerfile Best Practices

# 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"]

๐Ÿงฏ Troubleshooting Commands

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 Registry Operations

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

๐Ÿ” Security Commands

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

๐Ÿ“Š Performance and Monitoring

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!