摘要:主機(jī)名命名空間,不同的內(nèi)部可以擁有不同的主機(jī)名。此外,也是解決跨平臺部署的利器。也許看完上述介紹大家還是云里霧里,沒關(guān)系,既然叫實(shí)戰(zhàn)指南,那么必然有實(shí)戰(zhàn)部分,我們從最簡單的程序開始。后續(xù)我們將介紹,如果利用運(yùn)行你自己的程序。
Introduction原文地址:Docker實(shí)戰(zhàn)指南(一):Docker介紹
我第一次注意到Docker大概是在2014年的時(shí)候,當(dāng)時(shí)對Docker的第一印象就是,哇靠,這不就是LXC + cgroups嗎,新瓶裝舊酒又拿來賣了?這都行?
直到2015年6月,在各大IT巨頭的推動下,Open Container Initiative(OCI)成立,并制定了Open Container的第一版接口的標(biāo)準(zhǔn)規(guī)范,Docker正式的成為了Container技術(shù)的龍頭。
本系列文章將循序漸進(jìn)的帶您深入到Docker的方方面面中,讓您體會到Docker相比傳統(tǒng)的LXC技術(shù)的優(yōu)勢所在,以及如何將這些優(yōu)勢收為己用。
簡單來說,Docker就是一個(gè)應(yīng)用程序,一個(gè)后臺守護(hù)進(jìn)程而已。從技術(shù)本質(zhì)上來講,Docker基于Linux Namespace技術(shù),但又不僅僅是Namespace那么簡單,否則的話LXC同樣可以火起來。
Docker提供了很多新工具/概念,如沙箱環(huán)境(sandbox environment),命令行工具(command-line tool),鏡像管理(image management)等等。這些額外的工具讓Docker變得易于使用,在眾多Container技術(shù)中脫穎而出。
Docker的出現(xiàn)改變了軟件開發(fā)和軟件運(yùn)營的方式,從架構(gòu)到開發(fā)和測試,再到交付以及上線,依靠Docker,這一系列的流程都得到了簡化,大大加快了工程上線的開發(fā)速度,降低了企業(yè)的成本。
同時(shí),Docker有了自己的生態(tài)圈,眾多公司,包括Google, Microsoft, Intel, IBM, VMware這些巨頭,都聚在一起推動Docker發(fā)展。Google推出了基于Docker的云服務(wù),Microsoft也推出了基于Windows的Docker支持,AWS也可以托管Docker鏡像。Docker逐漸發(fā)展為虛擬化技術(shù)(Virtualization)和云計(jì)算(Cloud Computing)中的新寵。
Docker并不是虛擬化(Virtualization)技術(shù)。雖然和虛擬化一樣,提供了隔離(isolation)的能力,但是對比虛擬化技術(shù),docker并沒有使用硬件虛擬化(hardware virtualization)技術(shù),而僅僅是用戶態(tài)的一個(gè)進(jìn)程而已。用戶的應(yīng)用程序作為一個(gè)Linux的用戶態(tài)進(jìn)程,運(yùn)行在Docker的容器(container)中。
而做到這些的便是Docker采用的以下八個(gè)技術(shù):
PID namespace:進(jìn)程的命名空間,不同的container內(nèi)部的進(jìn)程擁有獨(dú)立的PID。
UTS namespace:主機(jī)名命名空間,不同的container內(nèi)部可以擁有不同的主機(jī)名。
MNT namespace:文件系統(tǒng)命名空間,不同的container內(nèi)部可以擁有不同的文件系統(tǒng)。
IPC namespace:進(jìn)程間通信命名空間,不同的container內(nèi)部可以擁有不同的進(jìn)程間通信空間,如各自獨(dú)立的共享內(nèi)存。
NET namespace:網(wǎng)絡(luò)命名空間,不同的container內(nèi)部可以有不同的網(wǎng)絡(luò)連接訪問方式。
USR namespace:用戶命名空間,不同的container內(nèi)部可以有不同的用戶。
chroot():不同的container可以有不同的root目錄。
cgroups:不同的container可以有各自受保護(hù)的資源。
上面的八個(gè)技術(shù)構(gòu)成了Docker的運(yùn)行時(shí)(runtime)所需的技術(shù)。
為什么使用Docker簡單來說,可以讓軟件開發(fā)流程變得快速簡單,尤其是在環(huán)境的配置上面。
相信大家都有這樣的噩夢,每次要開發(fā)新軟件或者換環(huán)境的時(shí)候,需要安裝配置一大堆的依賴。雖然有yum或者apt這類的包管理軟件幫忙,但是如果出現(xiàn)的包沖突,或者找不到包的情況,或者需要源碼編譯卻缺失依賴,這種環(huán)境部署簡直就是噩夢。
Docker就是解決上述噩夢的利器。
此外,Docker也是解決跨平臺部署的利器。你可以在你的MacOS, Windows, Linux上安裝Docker,然后下載你所需要的Docker鏡像(image)進(jìn)行程序開發(fā)。當(dāng)你的程序需要發(fā)布的時(shí)候,僅僅需要將你的Docker鏡像打包發(fā)布,不再需要搭建新環(huán)境。
也許看完上述介紹大家還是云里霧里,沒關(guān)系,既然叫實(shí)戰(zhàn)指南,那么必然有實(shí)戰(zhàn)部分,我們從最簡單的Hello World程序開始。
首先下載Docker安裝環(huán)境:https://docs.docker.com/engin...。
里面有Linux版的,Windows版的,MacOS版的,Cloud版的,選擇適合你的就好。
當(dāng)安裝好之后,在命令行中運(yùn)行:
docker run dockerinaction/hello_world
如果失敗,那么需要使用root權(quán)限來操作,Windows的話請采用管理員(administrator)權(quán)限。
一切就緒后,你應(yīng)該可以看到一句:
hello world
至此,第一個(gè)Hello World程序成功運(yùn)行。
中間發(fā)生了什么?這個(gè)命令完成了下面一系列的操作:
Docker檢查是否有所需的鏡像,如果沒有,那么嘗試去Docker Hub下載所需鏡像。
安裝所需鏡像。
Docker創(chuàng)建一個(gè)容器,并加載鏡像,運(yùn)行鏡像中的Hello World程序。
至于這個(gè)程序是什么,答案很簡單:
echo "hello world"Summary
我們簡單的介紹了Docker的前世今生,采用的技術(shù),以及使用的場景,最后用一個(gè)簡單的Hello World程序來進(jìn)行實(shí)戰(zhàn)。
后續(xù)我們將介紹,如果利用Docker運(yùn)行你自己的程序。
(本文出自csprojectedu.com,轉(zhuǎn)載請注明出處)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26681.html
摘要:原文地址實(shí)戰(zhàn)指南二在中搭建服務(wù)器學(xué)習(xí)最快的方法就是直接使用,在實(shí)戰(zhàn)指南一介紹中,我們已經(jīng)介紹了如何快速搭建,以及如何在中運(yùn)行我們的第一個(gè)程序。 原文地址:Docker實(shí)戰(zhàn)指南(二):在Docker中搭建Nginx服務(wù)器 Introduction 學(xué)習(xí)Docker最快的方法就是直接使用,在Docker實(shí)戰(zhàn)指南(一):Docker介紹中,我們已經(jīng)介紹了如何快速搭建Docker,以及如何在D...
摘要:原文地址實(shí)戰(zhàn)指南三鏡像在實(shí)戰(zhàn)指南二在中搭建服務(wù)器中,我們已經(jīng)介紹了如何快速地搭建一個(gè)實(shí)用的服務(wù)器。這次我們將圍繞鏡像,介紹其使用方法。此外,你也可以通過訪問,通過來搜索你需要的鏡像。通過此實(shí)戰(zhàn),你應(yīng)該對鏡像有了更深入的體會。 原文地址:Docker實(shí)戰(zhàn)指南(三):Docker鏡像 Introduction 在Docker實(shí)戰(zhàn)指南(二):在Docker中搭建Nginx服務(wù)器中,我們已經(jīng)介...
摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報(bào)率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級技術(shù)專家我看過哪些技術(shù)類書籍。 大家好,我是...
摘要:圍繞軟件工程效率提升進(jìn)行一系列技術(shù)內(nèi)容分享,包括國內(nèi)外持續(xù)集成持續(xù)交付,持續(xù)部署自動化測試等實(shí)踐教程工具與資源,以及一些工程師文化相關(guān)的程序員。劃分了數(shù)據(jù)庫日志安全監(jiān)控配置管理云服務(wù)等個(gè)大類,個(gè)工具。 CI Weekly 圍繞『 軟件工程效率提升』 進(jìn)行一系列技術(shù)內(nèi)容分享,包括國內(nèi)外持續(xù)集成、持續(xù)交付,持續(xù)部署、自動化測試、 DevOps 等實(shí)踐教程、工具與資源,以及一些工程師文化相關(guān)...
閱讀 3460·2019-08-30 13:15
閱讀 1400·2019-08-29 18:34
閱讀 822·2019-08-29 15:18
閱讀 3480·2019-08-29 11:21
閱讀 3246·2019-08-29 10:55
閱讀 3688·2019-08-26 10:36
閱讀 1868·2019-08-23 18:37
閱讀 1816·2019-08-23 16:57