自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Docker基礎(chǔ):Docker是什么,為什么這么火?

開(kāi)源
什么是LXC?LXC 是 Docker 的底層基石,但是在 Docker 0.9 版本的時(shí)候,Docker引入了基于 Go 語(yǔ)言構(gòu)建的 Libcontainer 的 execution driver。

?一、Docker是什么?

Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,它基于go語(yǔ)言開(kāi)發(fā),并遵從Apache2.0開(kāi)源協(xié)議。使用Docker可以讓開(kāi)發(fā)者封裝他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任意的 Linux 機(jī)器上運(yùn)行。Docker 的核心思想打包裝箱,每個(gè)箱子是互相隔離的,互不影響。

二、Docker 歷史

2010 年,幾個(gè)搞 IT 的年輕人,在美國(guó)舊金山成立了一家名叫 dotCloud 的公司。dotCloud 的平臺(tái)即服務(wù)(Platform-as-a-Service, PaaS)提供商。dotCloud 平臺(tái)底層利用了 Linux 的 LXC 容器技術(shù)。       

什么是LXC?LXC 是 Docker 的底層基石,但是在 Docker 0.9 版本的時(shí)候,Docker引入了基于 Go 語(yǔ)言構(gòu)建的 Libcontainer 的 execution driver。有了 Libcontainer 這個(gè)項(xiàng)目,Docker 不再需要依賴于 Linux 部件(LXC,libvirt,systemd-nspawn...)就可以處理 namespaces、control groups、capabilities、apparmor profiles、network interfaces。LXC 逐漸淪為可選項(xiàng)。       

圖片

 后來(lái)為了方便創(chuàng)建和管理這些容器,dotCloud 基于 Google 公司推出的 Go 語(yǔ)言開(kāi)發(fā)了一套內(nèi)部工具,之后被命名為 Docker。Docker 就是這樣誕生的。Docker 1.8 版本 中 LXC 被 棄用,在Docker 1.10版本LXC 徹底離開(kāi)Docker。Docker 官方推出的Libcontainer 集成了 Linux 內(nèi)核中的很多特性,成為一個(gè)獨(dú)立、穩(wěn)定且不受制于 Linux 的 Library。       

2013 年 3 月,dotCloud 公司的創(chuàng)始人之一28 歲的 Solomon?Hykes 正式?jīng)Q定,將 Docker 項(xiàng)目開(kāi)源。開(kāi)源當(dāng)月發(fā)布了 Docker 0.1 版本。此后的每一個(gè)月, Docker 都會(huì)發(fā)布一個(gè)迭代版本。到 2014 年 6 月 9 日, Docker 1.0 版本正式發(fā)布了。       

圖片

這個(gè)時(shí)候的 Docker已經(jīng)成為行業(yè)里人氣最火的開(kāi)源技術(shù)、。Google、微軟、Amazon、 VMware 這樣的互聯(lián)網(wǎng)巨頭們都對(duì)它青睞有加,表示將全力支持。Docker 火了之后, dotCloud 公司干脆把公司名字也改成了 Docker Inc. 。

三、為什么選擇 Docker

3.1 更高效的利用系統(tǒng)資源

由于容器不需要進(jìn)行硬件虛擬以及運(yùn)行完整操作系統(tǒng)等額外的開(kāi)銷,Docker 對(duì)系統(tǒng)資源的利用率比虛擬機(jī)更高。無(wú)論是應(yīng)用執(zhí)行速度、內(nèi)存損耗或者文件存儲(chǔ),都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效。

3.2 更快速的啟動(dòng)時(shí)間

傳統(tǒng)的虛擬機(jī)技術(shù)啟動(dòng)應(yīng)用服務(wù)往往需要好幾分鐘, Docker 容器應(yīng)用,由于直接運(yùn)行于宿主內(nèi)核,無(wú)需啟動(dòng)完整的操作系統(tǒng),可以達(dá)到秒級(jí)、甚至毫秒級(jí)的啟動(dòng)時(shí)間。大大的節(jié)約了項(xiàng)目部署的時(shí)間。

3.3 保證一致的項(xiàng)目運(yùn)行環(huán)境

開(kāi)發(fā)過(guò)程中一個(gè)非常常見(jiàn)的問(wèn)題是本地環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境不一致。經(jīng)常能碰到開(kāi)發(fā)、測(cè)試環(huán)境運(yùn)行正常而到了生產(chǎn)環(huán)境出現(xiàn)莫名其秒的問(wèn)題。而 Docker 的鏡像提供了除內(nèi)核外完整的項(xiàng)目運(yùn)行環(huán)境,確保了應(yīng)用運(yùn)行環(huán)境一致性,從而避免了因?yàn)殚_(kāi)發(fā)環(huán)境不一致造成的部署問(wèn)題。

3.4 持續(xù)交付和部署

對(duì)開(kāi)發(fā)和運(yùn)維(DevOps)人員來(lái)說(shuō),最理想的就是一次創(chuàng)建或配置,可以在任意服務(wù)器上正常運(yùn)行。使用 Docker 可以通過(guò)定制應(yīng)用鏡像來(lái)實(shí)現(xiàn)持續(xù)集成、持續(xù)交付、部署。開(kāi)發(fā)人員可以通過(guò) Dockerfile 來(lái)進(jìn)行鏡像構(gòu)建,并結(jié)合持續(xù)集成(Continuous Integration)系統(tǒng)進(jìn)行集成測(cè)試,而運(yùn)維人員則可以直接在生產(chǎn)環(huán)境中快速部署該鏡像,甚至結(jié)合持續(xù)部署(Continuous Delivery/Deployment)系統(tǒng)進(jìn)行自動(dòng)化部署。而且使用 Dockerfile 使鏡像構(gòu)建透明化,不僅僅開(kāi)發(fā)團(tuán)隊(duì)可以理解應(yīng)用運(yùn)行環(huán)境,也方便運(yùn)維團(tuán)隊(duì)理解應(yīng)用運(yùn)行所需條件,幫助更好的在生產(chǎn)環(huán)境中部署該鏡像。

3.5 更輕松的服務(wù)遷移

由于 Docker 確保了運(yùn)行環(huán)境的一致性,使得應(yīng)用的遷移更加容易。Docker 可以在很多平臺(tái)上運(yùn)行,無(wú)論是物理機(jī)、虛擬機(jī)、公有云、私有云,甚至是筆記本,其運(yùn)行結(jié)果是一致的。因此用戶可以很輕易地將在一個(gè)平臺(tái)上運(yùn)行的應(yīng)用,遷移到另一個(gè)平臺(tái)上,而不用擔(dān)心運(yùn)行環(huán)境的變化導(dǎo)致應(yīng)用無(wú)法正常運(yùn)行的情況。

3.6 更輕松的維護(hù)和擴(kuò)展

Docker 使用的分層存儲(chǔ)以及鏡像的技術(shù),使得應(yīng)用重復(fù)部分的復(fù)用更為容易,也使得應(yīng)用的維護(hù)更新更加簡(jiǎn)單,基于基礎(chǔ)鏡像進(jìn)一步擴(kuò)展鏡像也變得非常簡(jiǎn)單。此外,Docker 團(tuán)隊(duì)同各個(gè)開(kāi)源項(xiàng)目團(tuán)隊(duì)一起維護(hù)了一大批高質(zhì)量的 官方鏡像,既可以直接在生產(chǎn)環(huán)境使用,又可以作為基礎(chǔ)進(jìn)一步定制,大大降低了應(yīng)用服務(wù)的鏡像制作成本。

四、容器與虛擬機(jī)的比較

Docker 和傳統(tǒng)虛擬化方式的不同,容器是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,直接復(fù)用本地主機(jī)的操作系統(tǒng),而傳統(tǒng)方式則是在硬件層面實(shí)現(xiàn)。       

圖片

與傳統(tǒng)的虛擬機(jī)相比,Docker 優(yōu)勢(shì)體現(xiàn)為啟動(dòng)速度快、占用體積小。

特性?

Docker?

虛擬機(jī)?

啟動(dòng)?

秒級(jí)?

分鐘級(jí)?

硬盤使用?

MB?

GB?

性能?

接近原生?

較差?

系統(tǒng)支持量?

單機(jī)支持上千個(gè)容器?

一般幾十個(gè)?

個(gè)人博客網(wǎng)站:https://programmerblog.xyz。

責(zé)任編輯:武曉燕 來(lái)源: IT技術(shù)分享社區(qū)
相關(guān)推薦

2014-10-10 13:46:33

Docker

2013-03-04 10:10:36

WebKit瀏覽器

2024-03-07 10:21:56

2024-01-10 17:04:13

通信模塊通信技術(shù)通信模組

2021-03-26 08:47:01

SD-WAN網(wǎng)絡(luò)5G

2020-05-06 16:47:59

ServerlessMVC架構(gòu)

2020-05-25 20:46:59

Python編程語(yǔ)言程序員

2021-06-30 06:56:18

數(shù)據(jù)泄露零信任網(wǎng)絡(luò)安全

2015-01-14 14:27:18

Docker容器鏡像

2016-12-28 10:37:46

AndroidGradleApache Ant

2018-07-25 14:36:46

邊緣計(jì)算云計(jì)算

2024-03-01 17:01:15

GraphQL后端

2023-05-04 11:39:17

經(jīng)營(yíng)分析流量項(xiàng)目

2022-03-31 11:38:09

經(jīng)營(yíng)分析傳統(tǒng)企業(yè)運(yùn)營(yíng)商

2016-06-06 11:14:21

DockerDelphix

2024-02-04 16:51:47

2022-12-22 07:44:04

2017-07-26 10:21:46

DockerLinux容器

2021-03-16 08:35:14

Kubernetes Docker容器

2020-04-26 12:08:10

Python編程語(yǔ)言開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)