π³ Docker Commands and Practical Tips¶
A practical reference for Docker fundamentals, daily-use commands, and best practices.
π Table of Contents¶
- Getting Started
- Docker Basics
- Managing Containers
- Managing Images
- Docker Networking
- Docker Volumes
- Dockerfile
- Docker Compose
- Docker Registry
- Monitoring & Debugging
- Docker-in-Docker & Docker Socket
- Best Practices
π Getting Started¶
Ensure Docker is installed and running:
Test installation:
π§± Docker Basics¶
Pull an Image¶
Examples:
Run a Container¶
Example:
List Containers¶
Stop & Remove Containers¶
Force remove:
π§© Managing Containers¶
Start / Restart Containers¶
View Logs¶
Execute Inside Container¶
Alternative shells:
Inspect Container¶
Rename Container¶
πΌ Managing Images¶
List Images¶
Remove Images¶
Remove Dangling Images¶
Remove everything unused:
Tag an Image¶
Example:
π Docker Networking¶
List Networks¶
Create Network¶
Connect Container to Network¶
Inspect Network¶
Remove Network¶
πΎ Docker Volumes¶
Create Volume¶
Mount Volume¶
Bind mount example:
List Volumes¶
Inspect Volume¶
Remove Volume¶
π Dockerfile¶
Build Image¶
No cache build:
Example Dockerfile¶
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
π§© Docker Compose¶
Used for multi-container applications.
Start Services¶
Stop Services¶
View Logs¶
Scale Services¶
Restart Services¶
π¦ Docker Registry¶
Login¶
Push Image¶
Pull Image¶
π Monitoring & Debugging¶
Resource Usage¶
Disk Usage¶
Events (Debugging)¶
π³ Docker-in-Docker & Docker Socket¶
π₯ Mounting Docker Socket (Very Important Concept)¶
β What This Does¶
- Container can control host Docker
- Can create, stop, delete containers
- Used in CI/CD pipelines
β Security Warning¶
Mounting Docker socket = root access to host
Use only when necessary.
Docker-in-Docker (DinD)¶
Used for:
- CI pipelines
- Testing Docker builds
β Best Practices¶
β Use .dockerignore
β Use official base images
β Keep images small
β Donβt run containers as root
β Use volumes for data
β One process per container
β Pin image versions
π§ Common Tips¶
- Use
--rmfor temporary containers
- Name containers
- Limit resources
π― Final Notes¶
- Docker Image = Blueprint
- Docker Container = Running App
- Dockerfile = Recipe
- Docker Compose = Orchestrator (local)
- Docker Registry = Storage