Docker & Docker Compose 全面知識點梳理
一、Docker 基礎知識
1.1 Docker 概念
- 什么是容器、鏡像、倉庫、Docker 引擎
- 容器與虛擬機的區別
- Docker 的應用場景與優勢
1.2 Docker 安裝與配置
- 各操作系統(Linux、Windows、macOS)上的安裝方法
- 配置加速器、代理
- Docker 的基本配置文件(daemon.json)
1.3 鏡像(Image)
- 鏡像的結構(分層、只讀)
- 鏡像的獲取(docker pull)、查看(docker images)、刪除(docker rmi)
- 制作自己的鏡像(docker build、Dockerfile 詳解)
- 鏡像的導入導出(docker save/load,docker import/export)
- 鏡像標簽與版本管理
1.4 容器(Container)
- 容器的生命周期(創建、啟動、停止、刪除、重啟、掛起等)
- 容器的基本操作命令(docker run/start/stop/restart/rm/exec/attach/logs)
- 容器后臺與前臺運行
- 容器的端口映射、數據卷掛載(-p, -v)
- 容器資源限制(CPU、內存、Block IO、ulimit)
- 容器互聯(link、network)
1.5 Docker 網絡
- 網絡模式(bridge、host、none、container、overlay、macvlan)
- 自定義網絡的創建與管理(docker network)
- 網絡隔離、跨主機通信
- DNS配置、端口映射原理
1.6 Docker 數據管理
- 容器數據卷(Volumes)
- 數據卷類型(匿名卷、具名卷、主機掛載)
- 數據卷的生命周期
- 數據卷的遷移與備份
- 數據卷插件
1.7 Docker 倉庫(Registry)
- Docker Hub 的使用
- 私有倉庫搭建(registry 服務)
- 鏡像推送與拉取(docker push/pull)
- 鏡像安全與訪問控制
1.8 Dockerfile
- Dockerfile 基本結構與指令詳解(FROM, RUN, CMD, ENTRYPOINT, COPY, ADD, ENV, EXPOSE, VOLUME, WORKDIR, USER, LABEL, HEALTHCHECK, ARG, ONBUILD, SHELL)
- 多階段構建(multi-stage build)
- 鏡像構建優化(減少層數、緩存利用、最小化鏡像體積)
- 常用最佳實踐
1.9 容器日志與監控
- 容器日志管理(docker logs,日志驅動)
- 日志收集與持久化
- 容器監控(docker stats、cAdvisor、Prometheus 等)
1.10 容器安全
- 鏡像安全掃描(如 trivy、clair)
- 最小權限原則(USER、cap drop/add、seccomp、AppArmor、SELinux)
- 鏡像簽名與可信發布
- 網絡安全與隔離
二、Docker 進階與實戰
2.1 進階命令與參數
- docker inspect、docker diff
- 容器 commit 與變更管理
- docker cp(文件拷貝)
- docker update(動態調整資源)
2.2 多容器應用與編排
- Compose、Swarm、Kubernetes 等編排工具簡介
三、Docker Compose 專題
3.1 Docker Compose 基礎
- Compose 的作用與優勢
- 安裝與版本管理(v1/v2 差異)
3.2 docker-compose.yml 文件詳解
- 基本結構(version、services、networks、volumes)
- 服務定義(image/build、container_name、command、environment、ports、volumes、depends_on、restart、healthcheck 等)
- 多環境支持(.env 文件、環境變量注入)
- 多 compose 文件合并與覆蓋(-f 參數)
3.3 Compose 常用命令
- up/down/restart/stop/start/ps/logs/exec/build/config
- detach 模式與前臺模式
- 服務擴展與縮容(scale)
3.4 Compose 網絡與數據管理
- 自定義網絡
- 多服務間互通
- 持久化數據卷的高級用法
3.5 Compose 項目結構與實踐
- 項目目錄規范
- 與 CI/CD 集成
- 版本管理與團隊協作
3.6 Compose 高級用法
- depends_on 的高級用法與啟動順序
- healthcheck 結合 restart 策略
- 多環境配置(開發/測試/生產)
- Compose 文件模板化(擴展 Compose、環境占位符)
四、Docker 與生產實踐
4.1 鏡像發布與自動化構建
- 利用 CI/CD 自動構建與發布鏡像
- 多架構鏡像構建(buildx)
4.2 大規模部署與服務編排
- Swarm 集群
- Kubernetes 集群入門
- 與微服務架構結合
4.3 性能優化
- 鏡像瘦身與多階段構建
- 容器啟動速度優化
- 網絡與存儲優化
4.4 故障排查與調優
- 常見問題分析
- 容器/網絡/數據卷調試技巧
- 資源瓶頸排查
4.5 生產環境安全加固
- 鏡像源可信
- 鏡像內容合規性
- 容器運行時安全(如 seccomp、AppArmor)
五、常見問題與最佳實踐
- 鏡像最小化與多階段構建
- 配置敏感信息(如 secrets)管理
- 日志收集與監控體系建設
- 備份與數據恢復策略
- 容器生命周期管理
- 生產環境配置與參數優化
六、學習資料與社區
- 官方文檔:Docker Docs、Compose Docs
- 推薦書籍:《Docker 從入門到實踐》、《深入理解 Docker》
- 社區與論壇:Docker 官方社區、Stack Overflow、GitHub
建議學習路線:
- 完成 Docker 基礎命令和鏡像/容器操作;
- 掌握 Dockerfile 編寫和鏡像優化;
- 學習 Docker Compose,實現多容器編排;
- 深入理解網絡、卷、數據管理;
- 掌握安全、監控、日志等運維知識;
- 結合 CI/CD、集群編排實現生產級部署。