docker入門(一)

dockerdocker.lnc公司開源的一個基於LXC技術之上構建的container容器引(openstack是基於KVM),源代碼託管在GitHub上,基於Go語言並聽從Apache2.0協議開源。python

 

   docker是經過內核(linux內核)虛擬化技術(namespacescgroups等)(KVM是基於硬件虛擬化技術來實現的)來提供容器的資源隔離安全保障等。因爲Docker經過操做系統層的虛擬化實現隔離,因此docker容器在運行時,不須要相似虛擬機(VM)額外的系統開銷,提升資源利用率。linux

 

docker的組成:docker是一個C/S結構的(C/S就是客戶端/服務器,B/S就是瀏覽器/服務器模式)docker

Docker Clientubuntu

Dockerservercentos

docker的組件:瀏覽器

1,鏡像(p_w_picpath安全

2,容器(container服務器

3,倉庫(repository微信

Docker鏡像網絡

Docker鏡像( Image) 就是一個只讀的模板。

例如:一個鏡像能夠包含一個完整的ubuntu 操做系統環境,裏面僅安裝了 Apache

或用戶須要的其它應用程序。

鏡像能夠用來建立Docker 容器。

Docker提供了一個很簡單的機制來建立鏡像或者更新現有的鏡像,用戶甚至能夠

直接從其餘人那裏下載一個已經作好的鏡像來直接使用。

 

Docker 容器

Docker利用容器( Container) 來運行應用。

容器是從鏡像建立的運行實例。它能夠被啓動、開始、中止、刪除。每一個容器都是

相互隔離的、保證安全的平臺。

能夠把容器看作是一個簡易版的Linux 環境( 包括root用戶權限、進程空間、用戶

空間和網絡空間等)和運行在其中的應用程序。

*注:鏡像是隻讀的,容器在啓動的時候建立一層可寫層做爲最上層。

Docker 倉庫

倉庫(Repository) 是集中存放鏡像文件的場所。有時候會把倉庫和倉庫註冊服務

器(Registry) 混爲一談,並不嚴格區分。實際上,倉庫註冊服務器上每每存放着

多個倉庫,每一個倉庫中又包含了多個鏡像,每一個鏡像有不一樣的標籤(tag) 。

倉庫分爲公開倉庫(Public) 和私有倉庫( Private) 兩種形式。

最大的公開倉庫是Docker Hub,存放了數量龐大的鏡像供用戶下載。

國內的公開倉庫包括時速雲 、網易雲 等,能夠提供大陸用戶更穩定快速的訪問。

固然,用戶也能夠在本地網絡內建立一個私有倉庫(參考本文「私有倉庫」部分) 。

當用戶建立了本身的鏡像以後就可使用push 命令將它上傳到公有或者私有倉

庫,這樣下次在另一臺機器上使用這個鏡像時候,只須要從倉庫上pull 下來

就能夠了。

*注:Docker倉庫的概念跟 Git 相似,註冊服務器能夠理解爲 GitHub 這樣的託管服

 

容器與虛擬化的區別:containersvs VMS

Docker和傳統虛擬化方式的不一樣之處,可見容器是在操做系統層面上實現虛擬化,直接複用本地主機的操做系統,而傳統方式則是在硬件層面實現。

VM:首先須要有一個server(物理機)上面須要裝一個操做系統host OS,再上去須要起一個虛擬機管理器(好比是KVMXEN等),而後在上面跑一個虛擬機guest OS,在虛擬機上就能夠跑各類應用了。

wKiom1j2VsnhKh2gAAJx7zkJ9MQ181.png-wh_50

containers:須要有一個server(物理機)上面須要裝一個操做系統host OS,而後他是基於docker的一個引擎來建立各個docker,是隔離起來的

wKioL1j2VsjT_WIsAAKQYJEOLMQ474.png-wh_50

dockeropenstack的對比:

wKioL1j2VseQzsADAAIVQuCAUvQ499.png-wh_50

docker能幹什麼?

1,簡化配置。(環境不一致配置就不一致:測試環境中咱們裝了python的依賴,生產環境沒有裝就會出現上線失敗)(openstack,saltstack也能作)

2,代碼流水線管理(開發寫一個代碼須要開發環境,測試者測試,而後上線)保證全部環境一致(saltstack也能作,保證全部環境都是saltstack)

3,開發效率(新員工入職的時候新機器須要配置不少環境,不一樣業務線的給打包不一樣的鏡像)(openstack起個虛擬機更快,每人一臺虛擬機)docker起在本地可能一斷電就沒了

4,應用隔離(虛擬機是徹底隔離,docker只是一個隔離(openstackKVM須要佔用資源docker不用))

5,服務器整合(一個服務器能夠跑多個docker來提升服務器的利用率)

6,調試能力(進入docker調試比較難,虛擬機就方面不少)

7,多租戶(opensatck原本設置就是多租戶,每一個project就是一個租戶)

8,快速部署(體積小,快)(微信春晚搶紅包,一秒鐘啓動上千個docker)

wKiom1j2VsfhttoMAAHlZvUsreg751.png-wh_50

用docker的理由:

1,技術儲備。2,符合當前業務需求,3,速度快

docker的壞處:docker用的是S/C架構,一當服務器掛了,全部的docker都會中止運行。

centos7下載docker :yum installdocker -y

啓動:systemctlstart docker

相關文章
相關標籤/搜索