Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sanketbhandare/docker-complete-course

Complete Docker Zero to Hero Course with Practical Sessions & End-to-End Project
https://github.com/sanketbhandare/docker-complete-course

docker docker-compose docker-container docker-image dockerfile

Last synced: 18 days ago
JSON representation

Complete Docker Zero to Hero Course with Practical Sessions & End-to-End Project

Awesome Lists containing this project

README

        

# Complete Docker | Zero to Hero Course |

Complete Docker Zero to Hero Course with Practical Sessions & End-to-End Project. Keep Learning!

---

### Course Requirements:
1. **Laptop (with admin privileges)**
2. **Desire to Learn**.

---

## **Module 1: Docker Basics**
- **What is Docker?**: Overview of containers vs VMs.
- **Install Docker**: Set up Docker on Windows/macOS/Linux.
- **Run Containers**: Start a container using `docker run `.
- **Container Lifecycle**: Manage containers (`docker ps`, `docker stop`, `docker rm`).

---

## **Module 2: Docker Images**
- **What are Docker Images?**: Layers, file system, and reusable components.
- **Pull Images**: `docker pull `.
- **List and Remove Images**: `docker images`, `docker rmi `.
- **Create Custom Images**: Build images using a `Dockerfile`.

---

## **Module 3: Dockerfile & Multi-Stage Builds**
- **Dockerfile Basics**: Instructions like `FROM`, `RUN`, `COPY`, `CMD`.
- **Efficient Image Creation**: Automate build processes using Dockerfile.
- **Multi-Stage Builds**: Optimize image size by using multiple stages in a Dockerfile.

---

## **Module 4: Docker Networking and Volumes**
- **Docker Networking**: Understand bridge, host, and custom networks.
- Create custom networks: `docker network create `.
- Link containers via networks.
- **Docker Volumes**: Use volumes to persist data.
- Create and mount volumes: `docker volume create `.
- Attach volumes to containers: `docker run -v :`.

---

## **Module 5: Docker Registry & Image Management**
- **Docker Registry**: Docker Hub and private registries.
- **Push/Pull Images**: Push image to Docker Hub (`docker push `), pull image from Docker Hub (`docker pull `).
- **Image Management**: Tag images (`docker tag `), remove unused images (`docker rmi `).

---

## **Module 6: Docker Compose**
- **Introduction to Docker Compose**: Manage multi-container apps with `docker-compose.yml`.
- **Start and Stop Containers**: `docker-compose up`, `docker-compose down`.
- **Scaling Containers**: Define multiple instances of a service in Compose.

---

## **Module 7: Docker Image Scanning & Security**
- **Image Scanning**: Use tools like Clair or Trivy to scan Docker images for vulnerabilities.
- **Security Best Practices**:
- Use trusted base images.
- Avoid running containers as root.
- Use Docker Content Trust (DCT) to sign images.
- Regularly update images to patch security vulnerabilities.

---

## **Module 8: End-to-End Project: Dockerized Web App**
- **Step 1: Create a Simple Web App**:
- Choose a language (e.g., Python Flask or Node.js) and build a basic web app.
- Write a Dockerfile to containerize the app.
- **Step 2: Set Up Docker Compose**:
- Add a database (e.g., MySQL or MongoDB) using Docker Compose.
- Define multi-container services in `docker-compose.yml`.
- Link the web app and database using Docker networks.
- **Step 3: Automate Builds**:
- Build the image: `docker build -t .`.
- Push the app image to Docker Hub: `docker push `.
- **Step 4: Deploy with CI/CD**:
- Set up a simple Jenkins/GitLab pipeline to automate the build, test, and deployment.
- Use Docker to deploy the app on a cloud server (e.g., AWS, Azure).

---

## **Module 9: Final Project**
- **Create a Complete Dockerized Application**:
- Build and deploy a multi-container app (e.g., a web app with backend and database).
- Use Docker Compose for orchestration.
- Implement a CI/CD pipeline to automate testing and deployment.
- Scan Docker images for vulnerabilities and apply security measures.

---