docker基礎

docker是一個開源的應用容器引擎,使用go語言開發;

基於linux內核技術對應用程序進行隔離;
核心理念是將應用及依賴包打包到一個可移植的容器中;
可發佈到任意linux發行版的docker引擎上;
使用沙箱機制運行程序:
(應用程序只能訪問自己的目錄,這個目錄稱爲沙箱目錄,而應用程序之間禁止數據的共享和訪問; 沙箱機制是一種安全機制,設計原理就是隻能允許自己的應用訪問目錄,而不允許其他的應用訪問;
在iOS系統中,除了特有的應用可以通過使用特定的API共享數據(例如聯繫人),而其他的應用之間都不能共享數據。)

Docker體系結構:

docker基礎

  1. Engine:處理docker客戶端的請求,並進行相關的分發,下載鏡像--image repository--;

  2. runC:掛載文件系統並啓動容器;

  3. docker ps -q 顯示運行容器的id;

Docker工作過程:

docker基礎

虛擬機與容器的區別:

啓動時間不同
虛擬機分鐘級,docker秒級
輕量級
docker以M爲單位,虛擬機以G爲單位
性能
docker更快速
安全性:
不如虛擬機,一定程度上需要訪問物理機內核;如何解決?
使用要求
結合實際環境;docker適合快速部署等

  • 場景一:節省項目環境部署時間
    1.單項目打包
    2.整套項目打包
    利用docker-compose
    3.新開源技術試用

  • 場景二:環境的一致性
    便於移植,多次利用部署,保持運行狀態一致性;

  • 場景三:持續集成:
    docker+jenkins構建持續集成環境:
    docker基礎

  • 場景四:微服務
    將業務架構拆分成微小的業務去組織整體業務;
    一個容器中只運行一個服務,容器之間隔離;

  • 場景五:彈性伸縮
    業務量增加或減少,資源整合比較方便,資源拓展等;

docker的版本及安裝:

docker EE是企業版本,提供技術支持等;
docker CE是公共版本;
docker基礎

鏡像管理:

存儲驅動:
aufs,devicemapper,overlay,overlay2(目前最熱)

管理命令:

exec 執行命令
pull 拉鏡像
push 上傳鏡像
inspect 查看容器信息
stats 查看容器運行狀態
save 保存鏡像到本地
load 加載鏡像文件
volume 創建存儲

管理應用程序數據:

volumes、bind mounts和tmpfs;
tmpfs是存儲在宿主機內存中,不會寫入到文件系統;
bind mounts掛載宿主機目錄,相當於軟連接;

企業級私有倉庫:

docker harbor

docker監控:

cadvisor+influxdb+grafana

cadvisor:容器資源收集系統,收集容器的資源利用率,有內置的圖形頁面;
influxdb:時序數據庫管理系統,以時間爲索引存儲數據;
grafana:儀表盤,展示數據;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章