docker 學習筆記(1)

docker

intro

  1. docker 是一個用於開發、交互和運行應用程序的開發平臺。Docker 可以將應用程序與基礎架構分開,從而能夠快速交付軟件。藉助Docker,能夠以與管理應用程序相同的方式來管理基礎架構。
  2. docker 提供了在鬆散隔離的環境(稱爲容器)中打包和運行應用程序的功能。隔離和安全性能夠在給定主機上同時運行多個容器。容器是輕量級的,由於它們不須要虛擬機管理程序的額外負載,而是直接在主機的內核中運行。這意味着與使用虛擬機相比,能夠在給定的硬件組合上運行更多的容器。甚至能夠在其實是虛擬機的主機中運行Docker容器!
  3. Docker提供了工具和平臺來管理容器的生命週期:
    • 使用容器開發應用程序及其支持組件。
    • 容器成爲分發和測試應用程序的單元。
    • 準備就緒後,能夠將應用程序做爲容器或協調服務部署到生產環境中。不管生產環境是本地數據中心,雲提供商仍是二者的混合,其工做原理都相同。

docker engine

Docker Engine 是具備如下主要組件的客戶端-服務器應用程序:docker

  • 服務器是一種長期運行的程序,稱爲守護程序進程-daemon( dockerd命令)。
  • REST API,它指定程序能夠用來與守護程序進行通訊並指示其操做的接口。
  • 命令行界面(CLI)客戶端(docker命令)。

  • docker CLI 經過 REST API 或者 CLI 命令控制 daemon 或者與之交互
  • daemon 建立管理對象,例如 images, containers, networks, and volumes

application

  • 容器很是適合持續集成和持續交付(CI / CD)工做流程
  • Docker的可移植性和輕量級的特性還使您能夠輕鬆地動態管理工做負載,並根據業務需求指示實時擴展或拆除應用程序和服務
  • 在同一硬件上運行更多工做負載

namespaces

Docker 使用一種稱爲 namespaces 提供容器的隔離工做區的技術。運行容器時,Docker 會爲該容器建立一組 命名空間安全

這些名稱空間提供了一層隔離。容器的每一個方面都在單獨的名稱空間中運行,而且對其的訪問僅限於該名稱空間。服務器

Docker Engine 在Linux上使用如下名稱空間:網絡

  • pid:進程隔離(PID:process ID)
  • net:管理網絡接口(NET:networking)
  • ipc:管理訪問IPC資源(IPC:interProcess communication)
  • mnt:管理文件系統掛載點(MNT:mount)
  • uts:隔離內核和版本標識符。(UTS:Unix timesharing system)
相關文章
相關標籤/搜索