docker入門(一)

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

 

   docker是通過內核(linux內核)虛擬化技術(namespacescgroups等)(KVM是基於硬件虛擬化技術來實現的)來提供容器的資源隔離安全保障等。由於Docker通過操作系統層的虛擬化實現隔離,所以docker容器在運行時,不需要類似虛擬機(VM)額外的系統開銷,提高資源利用率。

 

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

Docker Client

Dockerserver

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


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