Docker 存儲引擎


 
可插拔存儲引擎架構

 
這種可插拔式的存儲架構。可以讓你很靈活的去選擇適合自己環境的存儲引擎。
每個存儲引擎都是以Linux 文件系統為基礎的。此外,每個存儲引擎都以自己的方式自由的管理image層,container層。
也就是說每個種存儲引擎在特定的情況下,表現的比其他的更好。
 
Docker只能運行一個存儲引擎,所有的容器被daemon使用一樣的存儲引擎創建。
Dcoker支持的存儲引擎:
 

 

docker info 命令查看daemon 中使用了哪個存儲引擎:
zane@zane-V:~$ docker info
Containers: 3
 Running: 0
 Paused: 0
 Stopped: 3
Images: 9
Server Version: 1.12.5
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 25
 Dirperm1 Supported: true
...
...

 

Backing Filesystem,實際參照Docker 主機用來創建 /var/lib/docker所使用的文件系統。
 
使用哪種存儲引擎,實際上部分由Backing Filesystem 的類型來決定的。
下表列出了每種存儲引擎是否必須和本地后備文件系統匹配:
 

 

可以在docker命令行通過 --storage-driver=<name>選項 或 /etc/default/docker 文件 設置選項的 DOCKER_OPTS行
 
下面的命令設置存儲引擎為 divicemapper:
 
$ dockerd --storage-driver=devicemapper &
$ docker info
Containers: 0
Images: 0
Storage Driver: devicemapper
     Pool Name: docker-252:0-147544-pool
     Pool Blocksize: 65.54 kB
     Backing Filesystem: extfs
     Data file: /dev/loop0
     Metadata file: /dev/loop1
     Data Space Used: 1.821 GB
 
選擇的存儲引擎會直接影響到容器應用的性能。
 
很多公司會使用共享存儲系統如:SAN,NAS.這提高了性能和可用性。
 
記住docker 存儲引擎是以Linux 文件系統或者 數據卷管理 為基礎的。
各存儲引擎官方都給出了最佳實踐的文檔,使用前可以實踐以確定是否合適當前環境。
 
選擇哪個存儲引擎?

 
選擇的關鍵因素
  • 沒有哪個存儲引擎適合所有的場景
  • 存儲引擎是在不斷的改善和發展的
 
穩定性
  • 使用默認存儲引擎
  • 遵循CS引擎兼容性中指定的配置。
 
經驗和專業
 
前瞻性
 
各存儲引擎的優缺點
 

 

總結
  • 可插拔存儲引擎的架構
    • 存儲引擎以主機文件系統為基礎
  • 查看使用哪個存儲引擎
    • docker info
  • 主要存儲引擎
    • AUFS
    • overlay


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM