初步了解Docker及其使用(一)

記錄初步了解Docker是什么梦皮,它的來(lái)源與應(yīng)用丽已。

歷史問(wèn)題

有句話廓块,相信大部分開(kāi)發(fā)者都說(shuō)過(guò)一句話:“在我這是好的”金闽。但為什么在其他環(huán)境下,就不好了呢~

在軟件開(kāi)發(fā)上剿骨,最大的麻煩之一,就是環(huán)境配置埠褪。用戶計(jì)算機(jī)的環(huán)境不盡相同浓利,比如某些庫(kù)和軟件沒(méi)有或者版本不一致,都會(huì)引起 -It works on my machine-

不畏困難的開(kāi)發(fā)者們就在想钞速,能不能讓軟件自帶環(huán)境再去安裝呢贷掖,這樣就從根本上解決了問(wèn)題。也就是說(shuō)軟件需要什么環(huán)境渴语,安裝包就有什么苹威。這樣,就是 It works on every machine

解決問(wèn)題的方式

虛擬機(jī)

學(xué)過(guò)操作系統(tǒng)的人驾凶,或者自己裝過(guò)系統(tǒng)的人牙甫,可能聽(tīng)說(shuō)或用過(guò)虛擬機(jī)。虛擬機(jī)是在一種操作系統(tǒng)里面運(yùn)行另一種操作系統(tǒng)调违,比如在Mac系統(tǒng)里面運(yùn)行Windows系統(tǒng)窟哺。

那么,我們將應(yīng)用程序技肩,安裝在虛擬機(jī)里面且轨。對(duì)于應(yīng)用程序來(lái)說(shuō),它并不知道實(shí)際上計(jì)算機(jī)是什么操作系統(tǒng)虚婿,不影響它的運(yùn)行旋奢。并且對(duì)于計(jì)算機(jī)而言,虛擬機(jī)就是一個(gè)文件然痊,不需要了至朗,刪掉就可以了,也不會(huì)影響計(jì)算機(jī)的其他應(yīng)用剧浸。

但這個(gè)方式有幾個(gè)缺點(diǎn)爽丹,就很致命筑煮。

->資源占用多。

哪怕應(yīng)用只需要1MB的內(nèi)存粤蝎,虛擬機(jī)依然需要幾百M(fèi)B的內(nèi)存才能運(yùn)行真仲。

->冗余步驟多

? 虛擬機(jī)是完整的操作系統(tǒng),一些系統(tǒng)級(jí)的操作步驟往往無(wú)法跳過(guò)初澎,比如用戶登錄秸应。

->啟動(dòng)慢

? 啟動(dòng)程序,需要先啟動(dòng)虛擬機(jī)碑宴,等幾分鐘再啟動(dòng)程序了软啼。

Linux容器

虛擬機(jī)雖然實(shí)現(xiàn)很簡(jiǎn)單,但上述的缺點(diǎn)延柠,還是很嚴(yán)重祸挪。于是,睿智的開(kāi)發(fā)者們又通過(guò)Linux發(fā)展出了另一種虛擬化技術(shù):Linux容器(Linux Containers LXC)贞间。

Linux容器不是模擬一個(gè)完整的操作系統(tǒng)贿条,而是對(duì)進(jìn)程進(jìn)行隔離。或者說(shuō)增热,在正常的進(jìn)程外面套了一個(gè)保護(hù)層整以。對(duì)于容器里面的進(jìn)程來(lái)說(shuō),它接觸道德各種資源都是尋你的峻仇,從而實(shí)現(xiàn)與底層系統(tǒng)的隔離公黑。

PS:剛了解的我,也是看的懵懵懂懂摄咆,但看到一個(gè)比喻是這樣:一艘貨輪上裝滿了集裝箱凡蚜,OK,貨輪即計(jì)算機(jī)吭从。集裝箱就是一個(gè)個(gè)容器番刊,里面裝著不同的應(yīng)用程序(貨物)。需要多大的內(nèi)存影锈,就用多大的集裝箱芹务。

那么,容器的有點(diǎn)有:(其實(shí)相對(duì)虛擬機(jī)來(lái)說(shuō)的

->資源占用少

? 容器只占用應(yīng)用程序需要的資源鸭廷。多個(gè)容器還可以共享資源枣抱,虛擬機(jī)是獨(dú)享資源,哪怕用不到那么多辆床。

->體積小

? 容器只要包含用到的組件和庫(kù)即可佳晶,不需要整個(gè)操作系統(tǒng),所以相比虛擬機(jī)讼载,它的體積小很多轿秧,并且沒(méi)有太多冗余步驟中跌。

->啟動(dòng)快

? 容器里面的應(yīng)用,直接就是底層系統(tǒng)的的一個(gè)進(jìn)程菇篡,而不是虛擬機(jī)的整個(gè)系統(tǒng)漩符。所以速度就會(huì)快很多。

看起來(lái)驱还,容器相對(duì)于虛擬機(jī)嗜暴,簡(jiǎn)直是秒殺了。

Docker是什么

Docker屬于Linux容器的一種封裝议蟆,(畢竟Linux容器對(duì)于很多人來(lái)說(shuō)不易用) 提供簡(jiǎn)單易用的容器使用接口闷沥。它是目前最流行的Linux容器解決方案。

Docker將應(yīng)用程序與該程序的依賴咐容,打包在一個(gè)文件(貨物)里面舆逃。運(yùn)行這個(gè)文件,就會(huì)生成一個(gè)虛擬容器(集裝箱)戳粒。程序在這個(gè)虛擬容器里運(yùn)行路狮,就好像在真是的物理機(jī)上運(yùn)行一樣。有了Docker享郊,就不用擔(dān)心環(huán)境問(wèn)題了。

總體來(lái)說(shuō)孝鹊,Docker的接口相當(dāng)簡(jiǎn)單炊琉,用戶可以方便地創(chuàng)建和使用容器,把自己的應(yīng)用放入容器又活。容器還可以進(jìn)行版本管理苔咪、復(fù)制、分享柳骄、修改团赏,就像管理普通代碼一樣。(PS:真的是十分棒的發(fā)明了耐薯。

Docker用在什么地方

->提供一次性的環(huán)境舔清。開(kāi)發(fā)給測(cè)試提供一致的測(cè)試環(huán)境。

->提供彈性的云服務(wù)曲初。因?yàn)镈ocker容器可以隨開(kāi)隨關(guān)体谒,很適合動(dòng)態(tài)的擴(kuò)容和縮容。

->組件微服務(wù)架構(gòu)臼婆。通過(guò)多個(gè)容器抒痒,一臺(tái)容器可以跑多個(gè)服務(wù),因此在一個(gè)機(jī)器上就可以模擬出微服務(wù)架構(gòu)颁褂。

Docker安裝

了解到Docker是一個(gè)開(kāi)源的商業(yè)產(chǎn)品故响,所以有兩個(gè)版本傀广,一個(gè)是社區(qū)版(Community Edition, CE),和企業(yè)版(Enterprise Edition, EE)彩届。社區(qū)版就是眾多優(yōu)秀的開(kāi)發(fā)者維護(hù)并更新的伪冰。

Docker CE 的安裝可以參考官方文檔。

安裝完成后惨缆,運(yùn)行下面命令糜值,查看是否安裝成功

docker version
// 或者
docker info

因?yàn)閐ocker用戶需要sudo權(quán)限,為了避免每次都需要sudo坯墨,可以把用戶加入docker用戶組寂汇。

PS:這里需要重新打開(kāi)終端才生效,終端不行的話就重啟服務(wù)器捣染。

// 添加docker用戶組
sudo groupadd docker

sudo usermod -aG docker $USER
// 將用戶加入docker用戶組骄瓣。其中$USER是當(dāng)前用戶。

Docker是服務(wù)器—客戶端架構(gòu)耍攘。命令行運(yùn)行docker命令的時(shí)候榕栏,需要本機(jī)有Docker服務(wù)。如果這項(xiàng)服務(wù)沒(méi)有啟動(dòng)蕾各,可以用下面的命令啟動(dòng)扒磁。

sudo systemctl start docker
// 或者
sudo service docker start

也可以開(kāi)啟 開(kāi)機(jī)啟動(dòng)

sudo systemctl enable docker

// 關(guān)閉開(kāi)機(jī)啟動(dòng)
sudo systemctl disable docker

最后,測(cè)試一下Docker服務(wù)

sudo docker run hello-world

此命令下載測(cè)試映像并在容器中運(yùn)行它式曲。當(dāng)容器運(yùn)行時(shí)妨托,它會(huì)打印一條信息性消息并退出。

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吝羞,一起剝皮案震驚了整個(gè)濱河市兰伤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钧排,老刑警劉巖敦腔,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異恨溜,居然都是意外死亡符衔,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)糟袁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)柏腻,“玉大人,你說(shuō)我怎么就攤上這事系吭∥迳” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)沃缘。 經(jīng)常有香客問(wèn)我躯枢,道長(zhǎng),這世上最難降的妖魔是什么槐臀? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任锄蹂,我火速辦了婚禮,結(jié)果婚禮上水慨,老公的妹妹穿的比我還像新娘得糜。我一直安慰自己,他們只是感情好晰洒,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布朝抖。 她就那樣靜靜地躺著,像睡著了一般谍珊。 火紅的嫁衣襯著肌膚如雪治宣。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天砌滞,我揣著相機(jī)與錄音侮邀,去河邊找鬼。 笑死贝润,一個(gè)胖子當(dāng)著我的面吹牛绊茧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播打掘,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼华畏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了胧卤?” 一聲冷哼從身側(cè)響起唯绍,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拼岳,失蹤者是張志新(化名)和其女友劉穎枝誊,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體惜纸,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叶撒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了耐版。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祠够。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粪牲,靈堂內(nèi)的尸體忽然破棺而出古瓤,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布落君,位于F島的核電站穿香,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绎速。R本人自食惡果不足惜皮获,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纹冤。 院中可真熱鬧洒宝,春花似錦、人聲如沸萌京。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)枫夺。三九已至将宪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間橡庞,已是汗流浹背较坛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扒最,地道東北人丑勤。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像吧趣,于是被迫代替她去往敵國(guó)和親法竞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容