成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Docker 入門及安裝[Docker 系列-1]

Lin_R / 2949人閱讀

摘要:核心對名字空間的支持完全隔離了工作環(huán)境中應(yīng)用程序的視野,包括進(jìn)程樹網(wǎng)絡(luò)用戶與掛載文件系統(tǒng),而核心的提供資源隔離,包括存儲器與網(wǎng)絡(luò)。因此更為輕量快速和易于管理。

docker 如日中天,這不是單純的炒概念,docker 確確實(shí)實(shí)解決了開發(fā)與運(yùn)維的痛點(diǎn),因此在企業(yè)開發(fā)中得到了非常廣泛的使用,本文對于 docker 的這些基本知識點(diǎn)再做一些簡單回顧。

什么是 docker

根據(jù) wikipedia 中的介紹:

Docker 是一個(gè)開放源代碼軟件項(xiàng)目,讓應(yīng)用程序布署在軟件容器下的工作可以自動(dòng)化進(jìn)行,借此在 Linux 操作系統(tǒng)上,提供一個(gè)額外的軟件抽象層,以及操作系統(tǒng)層虛擬化的自動(dòng)管理機(jī)制。  
Docker 利用 Linux 核心中的資源分脫機(jī)制,例如 cgroups ,以及 Linux 核心名字空間(name space),來創(chuàng)建獨(dú)立的軟件容器(containers)。這可以在單一 Linux 實(shí)體下運(yùn)作,避免啟動(dòng)一個(gè)虛擬機(jī)造成的額外負(fù)擔(dān)。Linux 核心對名字空間的支持完全隔離了工作環(huán)境中應(yīng)用程序的視野,包括進(jìn)程樹、網(wǎng)絡(luò)、用戶 ID 與掛載文件系統(tǒng),而核心的 cgroup 提供資源隔離,包括 CPU 、存儲器、block I/O 與網(wǎng)絡(luò)。從 0.9 版本起,Dockers 在使用抽象虛擬是經(jīng)由 libvirt 的 LXC 與 systemd - nspawn 提供界面的基礎(chǔ)上,開始包括 libcontainer 庫做為以自己的方式開始直接使用由 Linux 核心提供的虛擬化的設(shè)施。
依據(jù)行業(yè)分析公司“451研究”:“Dockers 是有能力打包應(yīng)用程序及其虛擬容器,可以在任何 Linux 服務(wù)器上運(yùn)行的依賴性工具,這有助于實(shí)現(xiàn)靈活性和便攜性,應(yīng)用程序在任何地方都可以運(yùn)行,無論是公有云、私有云、單機(jī)等?!?。

這里的介紹有點(diǎn)繞口,讓我來介紹下 docker 解決了哪些痛點(diǎn):

簡化環(huán)境管理

傳統(tǒng)的軟件開發(fā)與發(fā)布環(huán)境復(fù)雜,配置繁瑣,經(jīng)常有讀者在微信上問:我的代碼開發(fā)環(huán)境可以運(yùn)行,一旦部署到服務(wù)器上就運(yùn)行不了了。這個(gè)問題很常見,也確實(shí)很煩人,但是問題總要解決,開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境,每個(gè)環(huán)節(jié)都有可能出現(xiàn)這樣那樣的問題,如果能夠在各個(gè)環(huán)境中實(shí)現(xiàn)一鍵部署,就會(huì)方便很多,例如一鍵安裝 linux 、一鍵安裝 mysql、一鍵安裝 nginx 等,docker 徹底解決了這個(gè)問題。

虛擬化更加輕量級

說到容器,說到虛擬化,很多人總會(huì)想到虛擬機(jī),想到 VMware、VirtualBox 等工具,不同于這些虛擬技術(shù),docker 虛擬化更加輕量級,傳統(tǒng)的虛擬機(jī)都是先虛擬出一個(gè)操作系統(tǒng),然后在操作系統(tǒng)上完成各種各樣的配置,這樣并不能充分的利用物理機(jī)的性能,docker 則是一種操作系統(tǒng)級別的虛擬技術(shù),它運(yùn)行在操作系統(tǒng)之上的用戶空間,所有的容器都共用一個(gè)系統(tǒng)內(nèi)核甚至公共庫,容器引擎提供了進(jìn)程級別的隔離,讓每個(gè)容器都像運(yùn)行在多帶帶的系統(tǒng)之上,但是又能夠共享很多底層資源。因此 docker 更為輕量、快速和易于管理。

程序可移植

有了前面介紹的兩個(gè)特點(diǎn),程序可移植就是順理成章的事情了。

docker 和虛擬機(jī)

前面介紹了 docker 與傳統(tǒng)虛擬機(jī)的差異,通過下表再來詳細(xì)了解下這種差異:

||docker|虛擬機(jī)|
|:--|:---|:--|
|相同點(diǎn)|1. 都可在不同的主機(jī)之間遷移
2. 都具備 root 權(quán)限
3. 都可以遠(yuǎn)程控制
4. 都有備份、回滾操作
|
|操作系統(tǒng)|在性能上有優(yōu)勢,可以輕易的運(yùn)行多個(gè)操作系統(tǒng)|可以安裝任何系統(tǒng),但是性能不及容器|
|原理|和宿主機(jī)共享內(nèi)核,所有容器運(yùn)行在容器引擎之上,容器并非一個(gè)完整的操作系統(tǒng),所有容器共享操作系統(tǒng),在進(jìn)程級進(jìn)行隔離|每一個(gè)虛擬機(jī)都建立在虛擬的硬件之上,提供指令級的虛擬,具備一個(gè)完整的操作系統(tǒng)|
|優(yōu)點(diǎn)|高效、集中。一個(gè)硬件節(jié)點(diǎn)可以運(yùn)行數(shù)以百計(jì)的的容器,非常節(jié)省資源,QoS 會(huì)盡量滿足,但不保證一定滿足。內(nèi)核由提供者升級,服務(wù)由服務(wù)提供者管理|對操作系統(tǒng)具有絕對權(quán)限,對系統(tǒng)版本和系統(tǒng)升級具有完全的管理權(quán)限。具有一整套的的資源:CPU、RAM 和磁盤。QoS 是有保證的,每一個(gè)虛擬機(jī)就像一個(gè)真實(shí)的物理機(jī)一樣,可以實(shí)現(xiàn)不同的操作系統(tǒng)運(yùn)行在同一物理節(jié)點(diǎn)上。|
|資源管理|彈性資源分配:資源可以在沒有關(guān)閉容器的情況下添加,數(shù)據(jù)卷也無需重新分配大小|虛擬機(jī)需要重啟,虛擬機(jī)里邊的操作系統(tǒng)需要處理新加入的資源,如磁盤等,都需要重新分區(qū)。|
|遠(yuǎn)程管理|根據(jù)操作系統(tǒng)的不同,可以通過 shell 或者遠(yuǎn)程桌面進(jìn)行|遠(yuǎn)程控制由虛擬化平臺提供,可以在虛擬機(jī)啟動(dòng)之前連接|
|缺點(diǎn)|對內(nèi)核沒有控制權(quán)限,只有容器的提供者具備升級權(quán)限。只有一個(gè)內(nèi)核運(yùn)行在物理節(jié)點(diǎn)上,幾乎不能實(shí)現(xiàn)不同的操作系統(tǒng)混合。容器提供者一般僅提供少數(shù)的幾個(gè)操作系統(tǒng)|每一臺虛擬機(jī)都具有更大的負(fù)載,耗費(fèi)更多的資源,用戶需要全權(quán)維護(hù)和管理。一臺物理機(jī)上能夠運(yùn)行的虛擬機(jī)非常有限|
|配置|快速,基本上是一鍵配置|配置時(shí)間長|
|啟動(dòng)時(shí)間|秒級|分鐘級|
|硬盤使用|MB|GB|
|性能|接近原生態(tài)|弱于原生態(tài)|
|系統(tǒng)支持?jǐn)?shù)量|單機(jī)支持上千個(gè)|一般不多于幾十個(gè)|

docker 與傳統(tǒng)容器

不同與傳統(tǒng)容器,docker 早起基于 LXC,后來基于自研的 libContainer,docker 對于傳統(tǒng)容器做了許多優(yōu)化,如下:

跨平臺的可移植性

面向應(yīng)用

版本控制

組件復(fù)用

共享性

工具生態(tài)系統(tǒng)

docker 應(yīng)用場景

加速本地開發(fā)

自動(dòng)打包和部署應(yīng)用

創(chuàng)建輕量、私有的PaaS環(huán)境

自動(dòng)化測試和持續(xù)集成/部署

部署并擴(kuò)展Web應(yīng)用、數(shù)據(jù)庫和后端服務(wù)器

創(chuàng)建安全沙盒

輕量級的桌面虛擬化

docker 核心組件

docker 中有三大核心組件:

鏡像

鏡像是一個(gè)只讀的靜態(tài)模版,它保存了容器需要的環(huán)境和應(yīng)用的執(zhí)行代碼,可以將鏡像看成是容器的代碼,當(dāng)代碼運(yùn)行起來之后,就成了容器,鏡像和容器的關(guān)系也類似于程序和進(jìn)程的關(guān)系。

容器

容器是一個(gè)運(yùn)行時(shí)環(huán)境,是鏡像的一個(gè)運(yùn)行狀態(tài),它是鏡像執(zhí)行的動(dòng)態(tài)表現(xiàn)。

庫是一個(gè)特定的用戶存儲鏡像的目錄,一個(gè)用戶可以建立多個(gè)庫來保存自己的鏡像。

docker相關(guān)技術(shù)

隔離性

可度量性

移植性

安全性

docker 安裝

相對而言,Linux 上安裝 Docker 是最容易的,其次是 Mac ,最后是 Windows ,Windows 因此要裝的東西比較多,官方也提供了兩個(gè)不同的安裝包,支持不同的 Windows 的不同版本,一個(gè)是針對 Win10 的安裝引導(dǎo)程序,還有一個(gè)是兼容性較好的 Toolbox ,但是在 Windows 上運(yùn)行 Docker ,后期在虛擬目錄等方面還會(huì)遇到各種問題,所以這里松哥是非常不建議大家在 Windows 中安裝 Docker ,有 Mac 的上 Mac (Mac 上安裝 Docker 就像安裝普通軟件一樣),沒有 Mac 的裝 Linux 虛擬機(jī),再裝 Docker 即可,這里我就先以 CentOS 上安裝 Docker 為例,來說說 Docker 安裝。

分別執(zhí)行如下安裝命令:

# 首先安裝 Docker
yum -y install docker

# 然后啟動(dòng) Docker 服務(wù)
service docker start

# 測試安裝是否成功
docker -v

安裝完成后,看到如下頁面,表示安裝成功:

總結(jié)

本文主要向大家介紹了 Docker 的基本概念以及 Docker 的安裝 ,下篇文章我們向大家介紹 Docker 中基本的容器操作。有問題歡迎留言討論。

參考資料:

[1] 曾金龍,肖新華,劉清.Docker開發(fā)實(shí)踐[M].北京:人民郵電出版社,2015.

關(guān)注公眾號【江南一點(diǎn)雨】,專注于 Spring Boot+微服務(wù)以及前后端分離等全棧技術(shù),定期視頻教程分享,關(guān)注后回復(fù) Java ,領(lǐng)取松哥為你精心準(zhǔn)備的 Java 干貨!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/27874.html

相關(guān)文章

  • 寫這么多系列博客,怪不得找不到女朋友

    摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時(shí)間比較早,而且堅(jiān)持的時(shí)間也比較久,一直到現(xiàn)在也是一直保持著更新狀態(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時(shí)...

    JerryWangSAP 評論0 收藏0
  • Docker入門(一)

    摘要:作者麥冬白鯨魚是什么入門教程容器是與系統(tǒng)其他部分隔離開的一系列進(jìn)程,運(yùn)行這些進(jìn)程所需的所有文件都由另一個(gè)鏡像提供,從開發(fā)到測試再到生產(chǎn)的整個(gè)過程中,容器都具有可移植性和一致性。快速容器的啟動(dòng)和創(chuàng)建無需啟動(dòng),可以實(shí)現(xiàn)秒級甚至毫秒級的啟動(dòng)。 作者: 麥冬 白鯨魚 docker 是什么 Docker 入門教程 Docker容器是與系統(tǒng)其他部分隔離開的一系列進(jìn)程,運(yùn)行這些進(jìn)程所需的所有文件都由...

    zebrayoung 評論0 收藏0
  • Docker 快速入門

    摘要:容器類似虛擬機(jī),可以支持的操作包括啟動(dòng),停止,刪除等。交互式可以分配一個(gè)虛擬終端并關(guān)聯(lián)到任何容器的標(biāo)準(zhǔn)輸入上,例如運(yùn)行一個(gè)一次性交互。 Docker Docker 核心概念及入門 什么是docker Docker是一個(gè)開放源代碼軟件項(xiàng)目,讓應(yīng)用程序布署在軟件貨柜下的工作可以自動(dòng)化進(jìn)行,借此在Linux操作系統(tǒng)上,提供一個(gè)額外的軟件抽象層,以及操作系統(tǒng)層虛擬化的自動(dòng)管理機(jī)制。Docker...

    bingo 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<