Docker – Quick Notes & Guide 🐳
1️⃣ What is Docker?
Docker is an open-source platform that automates application deployment in lightweight containers.
- Containers are isolated, portable, and consistent across environments.
- Works with Linux, Windows, macOS.
2️⃣ Docker vs Virtual Machine
FeatureDockerVMOSShares host OSSeparate OSSizeLightweightHeavyBoot TimeSecondsMinutesResource UsageLowHighIsolationProcess-levelHardware-level
3️⃣ Key Docker Components
- Docker Engine – Runtime for containers
- Docker Image – Blueprint of container
- Docker Container – Running instance of image
- Docker Hub – Public repository
- Dockerfile – Instructions to build image
4️⃣ Basic Docker Commands
Installation Check
docker --version
docker info
List Images & Containers
docker images # list images
docker ps # running containers
docker ps -a # all containers
Run Container
docker run -d -p 80:80 nginx
Stop & Remove
docker stop <container_id>
docker rm <container_id>
docker rmi <image_name>
View Logs
docker logs <container_id>
5️⃣ Dockerfile Example
# Use official image
FROM python:3.11
# Set working directory
WORKDIR /app
# Copy requirements and install
COPY requirements.txt .
RUN pip install -r requirements.txt
# Copy source code
COPY . .
# Run app
CMD ["python", "app.py"]
Build & Run
docker build -t myapp .
docker run -d -p 5000:5000 myapp
6️⃣ Docker Networking
- bridge – Default, container-to-host communication
- host – Uses host network
- none – No networking
- overlay – Multi-host networking (Docker Swarm)
7️⃣ Docker Volumes (Persistent Storage)
docker volume create mydata
docker run -v mydata:/app/data myapp
8️⃣ Docker Compose (Multi-container Apps)
docker-compose.yml example:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root123
Run:
docker-compose up -d
docker-compose down
9️⃣ Docker Best Practices
- Use small base images
- Write multi-stage Dockerfiles
- Keep one process per container
- Use tags for versioning
- Secure Docker daemon
🔟 Interview Quick Questions
Q: Difference between image and container?
A: Image = blueprint, Container = running instance
Q: How to persist data in Docker?
A: Using volumes
Q: What is Docker Compose?
A: Tool to run multi-container apps
Q: How to expose a port?