Docker
(給自己文章打個(gè)call)如果對(duì)于linux比較陌生的可以看一看這些文章
Linux安裝MySQL、JDK(含環(huán)境變量配置)、Tomcat
Linux介紹以及常用操作命令
Linux中vi編輯器使用及ps系統(tǒng)管理命令
(1)從VM與Docker框架中,直觀上VM多了一層Guest OS,同時(shí)Hypervisor會(huì)對(duì)硬件資源進(jìn)行虛擬化,docker直接使用硬件資源,所以資源利用率相對(duì)docker低。
(2)openstack能夠以10臺(tái)/min的速度創(chuàng)建虛擬機(jī),在docker面前就弱爆了,因?yàn)閐ocker是利用宿主機(jī)的系統(tǒng)內(nèi)核,所以可以做到在幾秒鐘之內(nèi)創(chuàng)建大量容器,它們的啟動(dòng)速度是在數(shù)量級(jí)上的差距。Docker的每個(gè)隔離環(huán)境是進(jìn)程級(jí)的,每個(gè)守護(hù)進(jìn)程共用操作系統(tǒng)內(nèi)核,在隔離環(huán)境中打包運(yùn)行服務(wù)必要的依賴。因此每個(gè)容器啟動(dòng)非常快,且占用的資源非常少,非常適合用在服務(wù)器上部署后臺(tái)服務(wù)。
(3)Docker有著小巧、遷移部署快速、運(yùn)行高效等特點(diǎn),但隔離性比服務(wù)器虛擬化差;
(4)虛擬機(jī)更擅長(zhǎng)于徹底隔離整個(gè)運(yùn)行環(huán)境。例如,云服務(wù)提供商通常采用虛擬機(jī)技術(shù)隔離不同的用戶。而Docker通常用于隔離不同的應(yīng)用,例如前端,后端以及數(shù)據(jù)庫(kù)。
服務(wù)器虛擬化解決的核心問(wèn)題是資源調(diào)配,而容器解決的核心問(wèn)題是應(yīng)用開(kāi)發(fā)、測(cè)試和部署。
(5)VM在宿主機(jī)器、宿主機(jī)器操作系統(tǒng)的基礎(chǔ)上創(chuàng)建虛擬層、虛擬化的操作系統(tǒng)、虛擬化的倉(cāng)庫(kù),再安裝應(yīng)用;Docker容器在宿主機(jī)器的操作系統(tǒng)上創(chuàng)建Docker引擎,直接在宿主主機(jī)的操作系統(tǒng)上調(diào)用硬件資源。
(6)虛擬機(jī)雖然可以隔離出很多「子電腦」,但占用空間更大,啟動(dòng)更慢。虛擬機(jī)軟件可能還要花錢(qián),例如 VMWare。容器技術(shù)不需要虛擬出整個(gè)操作系統(tǒng),只需要虛擬一個(gè)小規(guī)模的環(huán)境,類(lèi)似「沙箱」。運(yùn)行空間,虛擬機(jī)一般要幾 GB 到 幾十 GB 的空間,而容器只需要 MB 級(jí)甚至 KB 級(jí)。
(7)虛擬機(jī)的 Hypervisor 創(chuàng)建了一個(gè)非常牢固的邊界,以防止應(yīng)用程序突破它,而容器的邊界不那么強(qiáng)大。
初識(shí) Docker
1.1 docker概念
1、Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎
2、誕生于 2013 年初,基于 Go 語(yǔ)言實(shí)現(xiàn), dotCloud 公司出品(后改名為Docker Inc)
3、Docker 是一個(gè)可以讓開(kāi)發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器引擎(好比汽車(chē)發(fā)動(dòng)機(jī)),然后發(fā)布到任何流行的 Linux 機(jī)器上。
4、容器是完全使用沙箱機(jī)制,相互隔離
5、容器性能開(kāi)銷(xiāo)極低。
6、Docker 從 17.03 版本之后分為 CE(Community Edition: 社區(qū)版) 和 EE(Enterprise Edition: 企業(yè)版)
docker扮演的是圖中鯨魚(yú)的角色,而鯨魚(yú)之上的集裝箱就是一個(gè)個(gè)容器,容器中是我們開(kāi)發(fā)的應(yīng)用程序(不僅限于web應(yīng)用),每個(gè)容器都有自己獨(dú)立的環(huán)境(環(huán)境設(shè)置、網(wǎng)絡(luò)、文件系統(tǒng)…),互不干擾。而每個(gè)箱子,又可以打包成一個(gè)新的鏡像,放到其它服務(wù)器的docker環(huán)境中直接運(yùn)行,不再需要重復(fù)安裝程序運(yùn)行環(huán)境
1.2 docker應(yīng)用場(chǎng)景
案例一:
前幾天,公司一批服務(wù)器就要到期了,由于服務(wù)器是15年購(gòu)買(mǎi)的,硬件的性能遠(yuǎn)比現(xiàn)在新出的云主機(jī)低,因此決定把所有服務(wù)器都換成新一代服務(wù)器,但是張三正準(zhǔn)備動(dòng)手遷移服務(wù)器時(shí),內(nèi)心一陣陣崩潰感涌上心頭,仔細(xì)一算,每臺(tái)服務(wù)器都要做同樣的事情。
1、裝jdk、Tomcat、nginx
2、配置jdk環(huán)境變量和系統(tǒng)變量
3、配置Tomcat
4、配置nginx
5、安裝項(xiàng)目所需的視頻解碼組件
6、導(dǎo)入項(xiàng)目所需的一些特殊字體
后來(lái)決定用docker部署的辦法,在每臺(tái)服務(wù)器都把docker安裝之后,只需要在其中一臺(tái)服務(wù)器中把Tomcat鏡像從鏡像倉(cāng)庫(kù)拉取下來(lái),把這些配置都設(shè)置好,做成一個(gè)自己的鏡像上傳到鏡像倉(cāng)庫(kù)中,之后在其他幾臺(tái)服務(wù)器都下載自己做的鏡像,運(yùn)行于docker中,把代碼上傳,就萬(wàn)事大吉了。
案例二
前不久的圣誕活動(dòng)中,公司臨時(shí)的活動(dòng)方案在程序員的加班加點(diǎn)中終于上線,但是一上線之后發(fā)現(xiàn)推廣海報(bào)中的中文名字亂碼,領(lǐng)導(dǎo)問(wèn)責(zé)測(cè)試人員怎么沒(méi)做好測(cè)試,測(cè)試很委屈的說(shuō)我已經(jīng)測(cè)試無(wú)數(shù)遍并且測(cè)試報(bào)告都提交了,解決了所有問(wèn)題才上線的;沒(méi)辦法只能讓服務(wù)器同事查看正式服務(wù)器中的tomcat配置,發(fā)現(xiàn)原來(lái) tomcat用了默認(rèn)編碼方式:iso8859-1,而測(cè)試環(huán)境中是UTF-8。針對(duì)這個(gè)問(wèn)題,項(xiàng)目組決定把開(kāi)發(fā)環(huán)境遷移到docker中,在測(cè)試環(huán)境中測(cè)試無(wú)誤后,把鏡像打包發(fā)布到正式環(huán)境中,解決了環(huán)境不同導(dǎo)致的問(wèn)題
1.3 安裝docker
Docker可以運(yùn)行在MAC、Windows、CentOS、UBUNTU等操作系統(tǒng)上,本課程基于CentOS 7 安裝Docker。
官網(wǎng):https://www.docker.com
#yum 包更新到最新
yum update -y
#安裝需要的軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2
#設(shè)置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安裝docker
yum install -y docker-ce
#查看docker版本,驗(yàn)證是否驗(yàn)證成功
docker -v
考慮到從 docker 官方的倉(cāng)庫(kù)下載 docker-ce 有時(shí)會(huì)比較慢,可以使用下述命令將下載網(wǎng)址改為華為的鏡像服務(wù)器:
sudo sed -i ‘s+download.docker.com+repo.huaweicloud.com/docker-ce+’ /etc/yum.repos.d/docker-ce.repo
1.4 docker相關(guān)概念
- 鏡像(Image):Docker 鏡像(Image),就相當(dāng)于是一個(gè) root 文件系統(tǒng)。比如官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統(tǒng)的 root 文件系統(tǒng)。
- 容器(Container):鏡像(Image)和容器(Container)的關(guān)系,就像是面向?qū)ο蟪绦蛟O(shè)計(jì)中的類(lèi)和對(duì)象一樣,鏡像是靜態(tài)的定義,容器是鏡像運(yùn)行時(shí)的實(shí)體。容器可以被創(chuàng)建、啟動(dòng)、停止、刪除、暫停等。
- 倉(cāng)庫(kù)(Repository):倉(cāng)庫(kù)可看成一個(gè)代碼控制中心,用來(lái)保存鏡像。
1.5 配置 Docker 鏡像加速器
默認(rèn)情況下,將來(lái)從docker hub(https://hub.docker.com/)上下載docker鏡像,太慢。一般都會(huì)配置鏡像加速器:
- USTC:中科大鏡像加速器(https://docker.mirrors.ustc.edu.cn)
- 阿里云
- 網(wǎng)易云
- 騰訊云
阿里云鏡像加速器配置文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-434546.html
首先登陸阿里云,點(diǎn)擊控制臺(tái),然后再點(diǎn)擊左邊的像三字一樣的圖標(biāo),再點(diǎn)擊產(chǎn)品與服務(wù),在輸入關(guān)鍵字地方搜索“鏡像”,會(huì)顯示容器鏡像服務(wù),點(diǎn)擊“容器鏡像服務(wù)”,在左側(cè)的最下方有鏡像中心(鏡像加速器),點(diǎn)擊鏡像加速器,復(fù)制如下代碼到linux執(zhí)行即可文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-434546.html
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://88y9upwp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
到了這里,關(guān)于Docker概念、安裝以及配置鏡像加速器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!