溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

docker概述&花式安裝

發(fā)布時(shí)間:2020-08-07 11:59:14 來(lái)源:網(wǎng)絡(luò) 閱讀:613 作者:wx5b9c94b17c62a 欄目:云計(jì)算

docker概述:

什么是Docker?

  • Docker是一種Linux容器技術(shù),一種高效、敏捷、和輕量級(jí)的容器解決方案,并且支持在多種主流平臺(tái)(PaaS)和本地部署。Docker是基于Go語(yǔ)言實(shí)現(xiàn)的云kai源項(xiàng)目,誕生于2013年,最初發(fā)起者是DotCloud公司,后來(lái)改名為DockerInc,之后專注于Docker相關(guān)技術(shù)和產(chǎn)品的kai發(fā)。Docker項(xiàng)目目前已經(jīng)加入了Linux基金會(huì),遵循Apache2.0kai源協(xié)議,全部kai源dai碼均在https://github.com/docker上進(jìn)行相關(guān)維護(hù),官網(wǎng)地址為:https://www.docker.com/,有相關(guān)文檔可以參考,現(xiàn)在docker與openstack同為最受歡迎的云計(jì)算kai源項(xiàng)目。

  • docker的Logo設(shè)計(jì)為藍(lán)色鯨魚,拖著許多集裝箱。docker的構(gòu)想思想是要實(shí)現(xiàn)“Build,ShipandRunAnyApp,Anywhere”,即通過(guò)對(duì)應(yīng)用的封裝(Packaging)、分發(fā)(Distribution)、部署(Deployment)、運(yùn)行(Runtime)生命周期進(jìn)行管理,達(dá)到應(yīng)用組件“一次封裝,到處運(yùn)行”的目的。這里的應(yīng)用組件,既可以是一個(gè)Web應(yīng)用、一個(gè)編譯環(huán)境,也可以是一套數(shù)據(jù)庫(kù)平臺(tái)服務(wù),甚至是一個(gè)操作系統(tǒng)或集群。
  • 基于Linux平臺(tái)上的多項(xiàng)kai源技術(shù),Docker提供了高效、敏捷和輕量級(jí)的容器方案,并支持部署到本地環(huán)境和多種主流云平臺(tái)。可以說(shuō),Docker首次為應(yīng)用的kai發(fā)、運(yùn)行和部署提供了“一站式”的實(shí)用解決方案。

docker概述&花式安裝

為何要使用docker?
1,Docker容器虛擬化的好處

  • Docker項(xiàng)目的發(fā)起人和Docker公司CTOSolomonHykes曾認(rèn)為,Docker在正確的地點(diǎn)、正確的時(shí)間順應(yīng)了正確的趨勢(shì)——如何正確地構(gòu)建應(yīng)用。
  • 在云時(shí)dai,kai發(fā)者創(chuàng)建的應(yīng)用必須要能很方便地在網(wǎng)絡(luò)上傳播,也就是說(shuō)應(yīng)用必須脫離底層物理硬件的限制;同時(shí)必須是“任何時(shí)間、任何地點(diǎn)”可獲取的。因此,kai發(fā)者需要一種新型的創(chuàng)建分布式應(yīng)用程序的方式,快速分發(fā)和部署,這正是Docker所能夠提供的最大優(yōu)勢(shì)。
  • 舉個(gè)簡(jiǎn)單的例子,假設(shè)用戶試圖基于最常見(jiàn)的LAMP(Linux+Apache+MySQL+PHP)組合來(lái)構(gòu)建一個(gè)網(wǎng)站。按照傳統(tǒng)的做法,首先,需要安裝Apache、MySQL和PHP以及它們各自運(yùn)行所依賴的環(huán)境;之后分別對(duì)它們進(jìn)行配置(包括創(chuàng)建合適的用戶、配置參數(shù)等);經(jīng)過(guò)大量的操作后,還需要進(jìn)行功能測(cè)試,看是否工作正常;如果不正常,則進(jìn)行調(diào)試追蹤,意味著更多的時(shí)間dai價(jià)和不可控的風(fēng)險(xiǎn)??梢韵胂?,如果應(yīng)用數(shù)目變多,事情會(huì)變得更加難以處理。
  • 更為可怕的是,一旦需要服務(wù)器遷移(例如從亞馬遜云遷移到其他云),往往需要對(duì)每個(gè)應(yīng)用都進(jìn)行重新部署和調(diào)試。這些瑣碎而無(wú)趣的“體力活”,極大地降低了工作效率。究其根源,是這些應(yīng)用直接運(yùn)行在底層操作系統(tǒng)上,無(wú)法保證同一份應(yīng)用在不同的環(huán)境中行為一致。
  • 而Docker提供了一種更為聰明的方式,通過(guò)容器來(lái)打包應(yīng)用,解耦應(yīng)用和運(yùn)行平臺(tái)。意味著遷移的時(shí)候,只需要在新的服務(wù)器上啟動(dòng)需要的容器就可以了,無(wú)論新舊服務(wù)器是否是同一類型的平臺(tái)。這無(wú)疑將節(jié)約大量的寶貴時(shí)間,并降低部署過(guò)程出現(xiàn)問(wèn)題的風(fēng)險(xiǎn)。

2,Docker在kai發(fā)和運(yùn)維中的優(yōu)勢(shì):

  • 更快速的交付和部署:使用Docker,kai發(fā)人員可以使用鏡像來(lái)快速構(gòu)建一套標(biāo)準(zhǔn)的kai發(fā)環(huán)境;kai發(fā)完成之后,測(cè)試和運(yùn)維人員可以直接使用完全相同環(huán)境來(lái)部署dai碼。只要kai發(fā)測(cè)試過(guò)的dai碼,就可以確保在生產(chǎn)環(huán)境無(wú)縫運(yùn)行。Docker可以快速創(chuàng)建和刪除容器,實(shí)現(xiàn)快速迭dai,大量節(jié)約kai發(fā)、測(cè)試、部署的時(shí)間。并且,整個(gè)過(guò)程全程可見(jiàn),使團(tuán)隊(duì)更容易理解應(yīng)用的創(chuàng)建和工作過(guò)程。
  • 更高效的資源利用:Docker容器的運(yùn)行不需要額外的虛擬化管理程序(VirtualMachineManager,VMM,以及Hypervisor)支持,它是內(nèi)核級(jí)的虛擬化,可以實(shí)現(xiàn)更高的性能,同時(shí)對(duì)資源的額外需求很低。跟傳統(tǒng)虛擬機(jī)方式相比,要提高一到兩個(gè)數(shù)量級(jí)。
  • 更輕松的遷移和擴(kuò)展:Docker容器幾乎可以在任意的平臺(tái)上運(yùn)行,包括物理機(jī)、虛擬機(jī)、公有云、私有云、個(gè)人電腦、服務(wù)器等,同時(shí)支持主流的操作系統(tǒng)發(fā)行版本。這種兼容性讓用戶可以在不同平臺(tái)之間輕松地遷移應(yīng)用。
  • 更簡(jiǎn)單的更新管理:使用Dockerfile,只需要小小的配置修改,就可以替dai以往大量的更新工作。并且所有修改都以增量的方式被分發(fā)和更新,從而實(shí)現(xiàn)自動(dòng)化并且高效的容器管理。

3,Docker與虛擬機(jī)比較:

  • 作為一種輕量級(jí)的虛擬化方式,Docker在運(yùn)行應(yīng)用上與傳統(tǒng)的虛擬機(jī)方式相比具有顯著優(yōu)勢(shì)
    Docker容器很快,啟動(dòng)和停止可以在秒級(jí)實(shí)現(xiàn),而傳統(tǒng)的虛擬機(jī)方式需要數(shù)分鐘。
    Docker容器對(duì)系統(tǒng)資源需求很少,一臺(tái)主機(jī)上可以同時(shí)運(yùn)行數(shù)千個(gè)Docker容器(在IBM服務(wù)器上已經(jīng)實(shí)現(xiàn)了同時(shí)運(yùn)行10K量級(jí)的容器實(shí)例)。
    Docker通過(guò)類似Git設(shè)計(jì)理念的操作來(lái)方便用戶獲取、分發(fā)和更新應(yīng)用鏡像,存儲(chǔ)復(fù)用,增量更新。
    Docker通過(guò)Dockerfile支持靈活的自動(dòng)化創(chuàng)建和部署機(jī)制,提高工作效率,使流程標(biāo)準(zhǔn)化。
    Docker容器除了運(yùn)行其中應(yīng)用外,基本不消耗額外的系統(tǒng)資源,保證應(yīng)用性能的同時(shí),盡量減小系統(tǒng)kai銷。傳統(tǒng)虛擬機(jī)方式運(yùn)行N個(gè)不同的應(yīng)用就要起N個(gè)虛擬機(jī)(每個(gè)虛擬機(jī)需要單獨(dú)分配獨(dú)占的內(nèi)存、磁盤等資源),而Docker只需要啟動(dòng)N個(gè)隔離的“很薄的”容器,并將應(yīng)用放進(jìn)容器內(nèi)即可。應(yīng)用獲得的是接近原生的運(yùn)行性能。
    當(dāng)然,在隔離性方面,傳統(tǒng)的虛擬機(jī)方式提供的是相對(duì)封閉的隔離。但這并不意味著Docker就不安全,Docker利用Linux系統(tǒng)上的多種防護(hù)技術(shù)實(shí)現(xiàn)了嚴(yán)格的隔離可靠性,并且可以整合眾多安全工具。從1.3.0版本kai始,Docker重點(diǎn)改善了容器的安全控制和鏡像的安全機(jī)制,極大提高了使用Docker的安全性。在已知的大規(guī)模應(yīng)用中,目前尚未出現(xiàn)值得擔(dān)憂的安全隱患。

Docker容器技術(shù)與傳統(tǒng)虛擬機(jī)技術(shù)的特性比較
docker概述&花式安裝

  • Docker虛擬化方式之所以有眾多優(yōu)勢(shì),這與操作系統(tǒng)虛擬化技術(shù)自身的設(shè)計(jì)和實(shí)現(xiàn)是分不開(kāi)的。
    docker概述&花式安裝
  • 傳統(tǒng)方式是在硬件層面實(shí)現(xiàn)虛擬化,需要有額外的虛擬機(jī)管理應(yīng)用和虛擬機(jī)操作系統(tǒng)層。Docker容器是在操作系統(tǒng)層面上實(shí)現(xiàn)虛擬化,直接復(fù)用本地主機(jī)的操作系統(tǒng),因此更加輕量級(jí)。

docker安裝:

docker官網(wǎng):https://www.docker.com/
docker官方文檔:https://docs.docker.com/

  • Docker值得關(guān)注的特性:
    文件系統(tǒng)隔離:每個(gè)進(jìn)程容器運(yùn)行在一個(gè)完全獨(dú)立的根文件系統(tǒng)里。
    資源隔離:系統(tǒng)資源,像CPU和內(nèi)存等可以分配到不同的容器中,使用cgroup。網(wǎng)絡(luò)隔離:每個(gè)進(jìn)程容器運(yùn)行在自己的網(wǎng)絡(luò)空間,虛擬接口和IP地址。
    日志記錄:Docker將會(huì)收集和記錄每個(gè)進(jìn)程容器的標(biāo)準(zhǔn)流(stdout/stderr/stdin),用于實(shí)時(shí)檢索或批量檢索。
    變更管理:容器文件系統(tǒng)的變更可以提交到新的映像中,并可重復(fù)使用以創(chuàng)建更多的容器。無(wú)需使用模板或手動(dòng)配置。
    交互式shell:Docker可以分配一個(gè)虛擬終端并關(guān)聯(lián)到任何容器的標(biāo)準(zhǔn)輸入上

在安裝docker之前,再說(shuō)一點(diǎn),docker現(xiàn)在有兩個(gè)版本,一個(gè)叫做docker-EE企業(yè)版,收費(fèi)的一個(gè)叫docker-CE社區(qū)版,免費(fèi)版,其實(shí)兩個(gè)版本并沒(méi)有太大的偏差,不一樣的是docker公司會(huì)提供后續(xù)的官方的技術(shù)支持等服務(wù),對(duì)于我們來(lái)說(shuō),肯定用社區(qū)辦的多,我們拿來(lái)學(xué)習(xí)社區(qū)辦更是可以的。

安裝docker內(nèi)核版本要求:3.10及以上
如果是centos6版本,因?yàn)閏entos6默認(rèn)的內(nèi)核版本是2.6,想要安裝docker,可以升級(jí)內(nèi)核。

docker概述&花式安裝

docker概述&花式安裝

docker概述&花式安裝
docker概述&花式安裝
docker概述&花式安裝
docker概述&花式安裝
docker概述&花式安裝
docker概述&花式安裝

(1)官方安裝:(我們是測(cè)試環(huán)境,所以安裝的是ce)

[root@sqm-docker01 yum.repos.d]# pwd
/etc/yum.repos.d

[root@sqm-docker01 yum.repos.d]# vim dockerce.repo
[dockerce] //倉(cāng)庫(kù)類別
name=dockerce //倉(cāng)庫(kù)名稱(說(shuō)明)
baseurl=https://download.docker.com/linux/centos/7/x86_64/stable/ //URL訪問(wèn)路徑
enabled=1 //啟用此軟件倉(cāng)庫(kù)
gpgcheck=0 //驗(yàn)證(檢查)軟件包的簽名,0表示不檢查,1表示檢查

[root@sqm-docker01 yum.repos.d]# yum repolist
//查看已配置的yum倉(cāng)庫(kù)
docker概述&花式安裝

//安裝docekr-ce
[root@sqm-docker01 yum.repos.d]# yum -y install docker-ce

##或者直接下載docker-ce.repo文件:
[root@k8s-master ~]# cd /etc/yum.repos.d/
[root@k8s-master yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@k8s-master yum.repos.d]# yum repolist
[root@k8s-master yum.repos.d]# yum -y install docker-ce
[root@k8s-master yum.repos.d]# docker –v

(2)國(guó)內(nèi)阿里yun源下載docker-ce:
(1)可以編寫自定義yum倉(cāng)庫(kù)

阿里巴巴開(kāi)源鏡像站:https://opsx.alibaba.com/mirror
#找到docker-ce
docker概述&花式安裝

docker概述&花式安裝

URL:https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/

yum倉(cāng)庫(kù)內(nèi)容:
docker概述&花式安裝

(2)或者直接下載阿里的repo源:
docker概述&花式安裝

將該文件使用wget工具下載到本地:

[root@sqm-docker01 yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看docker-ce的可用版本:

[root@sqm-docker01 yum.repos.d]# yum install -y docker-ce-18.09.0-3.el7 docker-ce-cli-18.09.0-3.el7 containerd.io-1.2.0-3.el7
docker概述&花式安裝

下載指定版本:
[root@sqm-docker01 yum.repos.d]# yum install -y docker-ce-18.09.0-3.el7 docker-ce-cli-18.09.0-3.el7 containerd.io-1.2.0-3.el7

  • 以上三個(gè)安裝包分別是:
  • 安裝社區(qū)版
  • 提供docker客戶端
  • 提供運(yùn)行環(huán)境

安裝完啟動(dòng)docker,并加入開(kāi)機(jī)自啟:

[root@sqm-docker01 yum.repos.d]# systemctl start docker
[root@sqm-docker01 yum.repos.d]# systemctl enable docker

查看docker的運(yùn)行進(jìn)程:
docker概述&花式安裝

安裝后的優(yōu)化操作:

(1)Docker命令自動(dòng)補(bǔ)全(最小化安裝的系統(tǒng)需要安裝,如果是安裝的圖形化則默認(rèn)自帶命令補(bǔ)全)

[root@docker01 ~]# yum -y install bash-completion
[root@docker01 ~]# curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
[root@docker01 ~]# source /etc/bash_completion.d/docker-compose

(2)docker配置加速器:
道云加速器網(wǎng)址:https://www.daocloud.io/
docker概述&花式安裝
登錄之后會(huì)有一個(gè)火箭的圖標(biāo),點(diǎn)擊它。

docker概述&花式安裝

docker概述&花式安裝

根據(jù)提示重啟docker服務(wù):
[root@sunqiuming-1 ~]# systemctl daemon-reload #需要重新加載守護(hù)進(jìn)程
[root@sunqiuming-1 ~]# systemctl restart docker

docker概述&花式安裝

在完成加速器的操作之后,我們會(huì)發(fā)現(xiàn)/etc/多了一個(gè)文件。

[root@sunqiuming-1 ~]# cat /etc/docker/daemon.json 
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}

####也就是說(shuō),剛才的那句話,就是為了實(shí)現(xiàn)這個(gè)文件,添加這個(gè)網(wǎng)址,其實(shí)這個(gè)網(wǎng)址那,也是可以更改的,加速器也不只是道云一家,還有一家公司,也提供加速器服務(wù),就是大名鼎鼎的阿里云

阿里云官網(wǎng):https://www.aliyun.com/
docker概述&花式安裝

docker概述&花式安裝

也可以更改成這個(gè)網(wǎng)址,當(dāng)然如果你更改之后,還需要執(zhí)行reload命令,重新加載一下配置文件。

[root@sunqiuming-1 ~]# systemctl daemon-reload 
[root@sunqiuming-1 ~]# systemctl restart docker

以上基本就是docker部署安裝及優(yōu)化的全部?jī)?nèi)容。

———————— 本文至此結(jié)束,感謝閱讀 ————————

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI