Docker的學習

學習地址:http://blog.51cto.com/lizhenliang  和 他的視頻html

一  Docker 的介紹和安裝linux

二 鏡像管理docker

三 容器管理centos

四 管理應用程序數據安全

五 使用Docker知識部署簡易的LNMP站點網絡

六 網絡管理app

七 Dockerfile微服務

八 企業級鏡像倉庫Harbor工具

九 圖形化界面管理性能

十 構建容器監控系統

 

一 Docker 的介紹和安裝

1.1 Docker是什麼

1.2 Docker的體系結構

1.3 內部組件

1.4 虛擬機和容器的區別

1.5 Docker的應用場景

1.6 Linux 安裝Docker

 

  1. 1 Docker是什麼:

Docker是一個開源的應用容器引擎,使用Go語言開發,基於Linux內核的cgroup, namespace, Union FS等技術,對應用進程進行封裝隔離,而且獨立於宿主機與其餘進程,這種運行時封裝的狀態稱爲容器。Docker早起版本實現是基於LXC,並進一步對其封裝,包括文件系統、網絡互聯、鏡像管理等方面,極大簡化了容器管理。從0.7版本之後開始去除LXC,轉爲自行研發的libcontainer,從1.11版本開始,進一步演進爲使用runC和containerd。Docker理念是將應用及依賴包打包到一個可移植的容器中,可發佈到任意Linux發行版Docker引擎上。使用沙箱機制運行程序,程序之間相互隔離。

它是經過內核虛擬化技術來提供容器的資源的隔離和安全保證等等,由於docker是經過操做系統層的虛擬化實現隔離,因此docker容器在運行的時候是不須要額外的虛擬化管理程序,他是內核級別的虛擬化,能夠實現更加高效的性能,同事對資源的額外的需求很低,他的最本質的特徵,docker是經過隔離來進行建立容器。

  

  1. 2 Docker的體系結構:

咱們經過Docker 客戶端發送指令,經過Docker引擎來分發指令,是下載鏡像或者是建立容器,若是本地有鏡像直接引用,若是本地沒有就從倉庫拉取,通知Containerd 建立容器,Containerd在收到Engine的請求以後會啓動一個shim,shim 會讓runc提供一個容器的運行環境,runC就會去掛載文件系統,最後runC就會在文件系統啓動一個進程。

 

Containerd:是一個簡單的守護進程,使用runC管理容器。向Docker Engine提供接口
Shim:只負責管理一個容器。
runC:是一個輕量級的工具,只用來運行容器。

 

 

  1.  3 Docker 的內部組件

Namespace

  命名空間,Linux內核提供的一種對進程資源隔離的一種機制,例如進程、網絡、掛載點等資源,把他們封裝在一個名稱空間中,只能看到本容器內的資源

CGroups

  控制組,LInux內核提供的一種限制進程資源的機制:例如CPU、內存等資源

  咱們能夠在宿主機上經過 ls /sys/fs/cgroup 看到咱們隊哪些資源進行了限制,限制的資源有   blkio  cpu  cpuacct  cpu,cpuacct  cpuset  devices  freezer  hugetlb  memory  net_cls  net_cls,net_prio  net_prio  perf_event  pids  systemd

UnionFS:

  聯合文件系統,支持將不一樣位置的目錄掛載到同一個虛擬文件系統,造成一種分層的模型

 

  1.  4 虛擬機和容器的區別

 以KVM爲例和Docker相比

啓動時間:

  Docker 秒級啓動,KVM分鐘級別啓動

輕量級:

  容器鏡像大小一般以M爲單位,虛擬機以G爲單位

  容器資源佔用小,要比虛擬機部署更加的快速

 性能:

  資源共享宿主機內核,系統級虛擬化,佔用資源少,沒有Hypervisor層開銷,容器性能基本接近物理機

  虛擬機須要Hypervisor層支持,虛擬化一些設備,具備完整的GuestOS,虛擬化開銷大,於是下降性能,沒有容器性能好

安全性:

  因爲共享宿主機內核,只是進程級隔閡,所以隔離性和穩定性不如虛擬機,容器具備必定權限範根宿主機內核,存在必定安全隱患

 使用要求:
  KVM基於硬件的徹底虛擬化,須要硬件CPU虛擬化技術支持

  容器共享宿主主機內核,可運行在主流的Linux發行版,不用考慮CPU是否支持虛擬化技術

 

應用場景:(http://blog.51cto.com/lizhenliang/1978081)

  節省橡膠木環境部署時間

    單項目打包

    整套項目打包

    新開源技術試用

  環境一致性

  持續集成

  微服務

  彈性伸縮

 

Linux 安裝Docker

就個人環境看一下文檔的安裝方式:
https://docs.docker.com/install/linux/docker-ce/centos/

咱們這裏安裝ce 版本

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce

這裏咱們如今要是啓動的話,咱們用的倉庫源的地址就是官方的,可能用起來不太方便,咱們能夠給企改爲國內的,而後在啓動

 

systemctl start docker

 

卸載的方式:

yum remove docker-ce

rm -rf /var/lib/docker

 博客總結來源於:http://edu.51cto.com/course/10659.html

相關文章
相關標籤/搜索