Skip to content

Tony427/Docker-Practice-Cases

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Practice Cases

目標

完成這三個案例後,掌握:

  • Docker CLI 日常容器操作
  • Dockerfile 撰寫與自訂 image 建立
  • Docker Compose 多容器 app 管理
  • 容器化 app 開發與部署 flow

技能檢核表

技能領域 技能點 Case 1 Case 2 Case 3
基本操作 docker run, docker ps, docker logs V V V
容器管理 docker stop, docker start, docker rm V V V
Image 操作 docker images, docker pull, docker build V V V
Volume 掛載 -v, --mount V
Port mapping -p, --publish V V V
Dockerfile FROM, COPY, RUN, CMD, EXPOSE V V
容器 Debug docker exec, docker logs V V V
Docker Compose docker-compose up/down, depends_on V
多容器 Network Service discovery, container networking V

專案結構

Docker-Practice-Cases/
├── README.md                           # 主要說明文件
├── case1-nginx-static-site/            # Case 1: 基本容器操作
│   ├── README.md                       
│   └── html/
│       └── index.html                  
├── case2-node-dockerfile/              # Case 2: Dockerfile 建立自訂 image
│   ├── README.md                       
│   ├── Dockerfile                      
│   ├── package.json                    
│   └── app.js                          
└── case3-node-redis-compose/           # Case 3: 多容器系統
    ├── README.md                       
    ├── docker-compose.yml              
    ├── Dockerfile                      
    ├── package.json                    
    └── app.js                          

案例說明

Case 1: Nginx 靜態網站

重點: 基本容器操作、Volume mount、Port mapping

使用官方 Nginx image 架設靜態網站,涵蓋:

  • 容器啟動與 lifecycle 管理
  • 本機檔案 mount 到容器內
  • Port mapping 讓外部存取 service
  • 檢視容器 logs 進行 debug

Case 2: Node.js Web 應用

重點: Dockerfile 撰寫、Image build

建立 Node.js Express app,涵蓋:

  • 撰寫 Dockerfile 定義 image build flow
  • 使用 docker build 建立自訂 image
  • 理解 image layer 結構與 best practice
  • 測試自建 image 的功能

Case 3: Node.js + Redis 多容器系統

重點: Docker Compose、多容器協作

建立包含 Web app 與 Redis cache 的分散式系統,涵蓋:

  • 使用 Docker Compose 定義多容器 architecture
  • 容器間 network 通訊與 service discovery
  • Dependency 管理 (depends_on)
  • 多容器 app 的統一管理

開始練習

前置需求

環境需求:

驗證 Docker 安裝

# 檢查 Docker 版本
docker --version

# 檢查 Docker 是否正常運作
docker run hello-world

建議

最佳實踐

  1. 循序漸進: 按順序完成,每個 Case 都建立在前一個的基礎上
  2. 動手實作: 親自輸入每個指令,避免只是複製貼上
  3. 理解原理: 思考每個指令背後的作用和原理
  4. 除錯練習: 遇到錯誤時,練習使用 docker logsdocker exec 進行除錯

常用指令速查

# 容器操作
docker run -d -p 8080:80 nginx                    # 背景執行容器
docker ps                                         # 查看執行中容器
docker ps -a                                      # 查看所有容器
docker logs <container_id>                        # 查看容器 logs
docker exec -it <container_id> bash               # 進入容器內部
docker stop <container_id>                        # 停止容器
docker rm <container_id>                          # 刪除容器

# Image 操作
docker images                                      # 列出本機 image
docker build -t my-app .                          # 建立 image
docker pull nginx                                 # 下載 image
docker rmi <image_id>                             # 刪除 image

# Docker Compose
docker-compose up -d                               # 啟動所有服務
docker-compose down                                # 停止並移除所有服務
docker-compose logs                                # 查看所有服務 logs
docker-compose ps                                  # 查看服務狀態

About

Docker基本操作練習

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors