本文採用 GPL 協議發布,轉載請保持完整性並註明作者 haoqiang1531@outlook.com、博客 fireaxe.blog.chinaunix.net。內容僅供參考,不承擔使用後果責任。
Docker 基於 LXC (Linux Containers) 與 AUFS (Another Union File System) 衍生而來。
| 技術 | 角色 | 關鍵特性 |
|---|---|---|
| LXC | 輕量級虛擬化 | 共享 Host Kernel,啟動毫秒級,性能接近原生;缺點:只能跑 Linux 容器 |
| AUFS | 聯合文件系統 | 多目錄堆疊掛載,每層可獨立設置讀寫屬性,實現文件系統級復用 |
commit,由多層只讀層疊加而成working directorydocker commit:容器 → 鏡像 (生成新提交)docker push:推送鏡像到 Registry (遠端倉庫),實現團隊協作生產環境部署利器:聲明式描述構建步驟,docker build 一鍵生成鏡像。
核心價值:讓環境打包過程自動化、可版本化、可復現。開發階段價值較小,生產交付階段極大。
| 命令 | 核心參數 | 功能 |
|---|---|---|
create | --name | 基於鏡像創建容器(不啟動) |
start | -ti 交互終端 / -d 後台 / -v 掛載卷 | 啟動容器 |
run | --name | create + start 一體化 |
ps | -a 顯示所有 | 列出容器 |
images | -a 含中間層 | 列出鏡像 |
history | 查看鏡像構建歷史層 | |
stop | 優雅關閉容器 | |
pause | 暫停容器進程 | |
rm | 刪除容器 | |
commit | 容器生成新鏡像 | |
rmi | 刪除鏡像 | |
pull | 從 Registry 拉取鏡像 | |
push | 推送鏡像到 Registry | |
login | 登錄 Docker Hub |
-v)實現 數據與應用分離,獨立備份,生命週期獨立於容器。
# 創建帶單個數據卷的容器 docker run -v /host/data/path:/container/mount/path:ro --name dbdata ubuntu /bin/bash # 創建帶多個數據卷的容器 docker run -d -v /host/path1:/mnt/path1:ro -v /host/path2:/mnt/path2:ro --name dbdata ubuntu /bin/bash
--volumes-from)作為數據卷的抽象層,隔離 Host 路徑變更影響。Host 路徑變動時,只需更新數據卷容器,業務容器零修改。
# 業務容器從數據卷容器繼承掛載點 docker run -ti --volumes-from dbdata --name app ubuntu
跟隨官方交互教程快速上手:https://docs.docker.com/mac/started/
本文採用 GPL 協議發布,轉載請保持完整性並註明作者 haoqiang1531@outlook.com、博客 fireaxe.blog.chinaunix.net。