一丶Docker淺談
1.1Docker為什么出現(xiàn)
我們知道,傳統(tǒng)的項(xiàng)目開發(fā)和運(yùn)維是兩套環(huán)境,而且要一一配置環(huán)境并且有的時(shí)候更新還會(huì)導(dǎo)致服務(wù)不可用,這就很麻煩了,那么有沒有一種很方便不用這么麻煩的技術(shù)可以一鍵安裝呢?有!那就是我們的Docker。
1.2Docker能干嗎
現(xiàn)在,用Docker可以打包應(yīng)用以及環(huán)境到一個(gè)可移植的鏡像中,然后發(fā)布到Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化,十分的方便,用docker隔離,打包裝箱,為了讓不同東西放在同一個(gè)環(huán)境,通過隔離機(jī)制,把服務(wù)器利用到極致。(容器與容器之間互不影響,就和集裝箱一樣,每個(gè)都是單獨(dú)的個(gè)體)
我們來對(duì)比一下優(yōu)缺點(diǎn)
VM:資源占用多,冗余步驟多,啟動(dòng)慢(虛擬出硬件,完整的操作系統(tǒng),在系統(tǒng)上運(yùn)行)
容器化技術(shù):不是模擬完整的系統(tǒng),每個(gè)都是隔離起來的,一個(gè)崩了不影響其他的,直接運(yùn)行在宿主機(jī)內(nèi)容,沒有自己的內(nèi)核,不虛擬硬件,輕便。
并且,Docker能讓系統(tǒng)運(yùn)維更簡(jiǎn)單,測(cè)試環(huán)境高度一致,也不會(huì)出現(xiàn)操作系統(tǒng)不同不能用,有著高效資源利用,內(nèi)核級(jí)別虛擬化,不需要管理程序,可以在一個(gè)機(jī)器上運(yùn)行很多容器實(shí)例,壓榨服務(wù)器性能到極致。
二、Docker的安裝
2.1 Docker的組成
Docker分為三個(gè)部分組成:
1.鏡像 image
2.容器 container
3.倉(cāng)庫(kù) repository
鏡像:鏡像就像一個(gè)模板,可以通過這個(gè)模板創(chuàng)建容器服務(wù),比如有個(gè)tomcat鏡像,我們要運(yùn)行起來然后它就會(huì)變成一個(gè)容器(提供服務(wù)) 通過鏡像可以創(chuàng)建多個(gè)容器,服務(wù)或者項(xiàng)目運(yùn)行在容器中。
容器:Docker利用容器技術(shù)做到獨(dú)立運(yùn)行一個(gè)或者一組應(yīng)用,通過鏡像創(chuàng)建,有啟動(dòng) 停止,刪除這種基礎(chǔ)操作,可以把容器看成簡(jiǎn)易的linux。
倉(cāng)庫(kù):存放鏡像的地方,有公有和私有,共有所有人都可以訪問,Docker Hub,阿里云等都有容器服務(wù)。
2.2 安裝前提
Docker 運(yùn)行在 CentOS 7上,系統(tǒng)要是64位,內(nèi)核版本為 3.10 以上。
Docker 運(yùn)行在 CentOS-6.5 或更高的版本的 CentOS 上,系統(tǒng)要是64位,內(nèi)核版本為 2.6.32-431 或者以上。
uname -r 查看自己的內(nèi)核
2.3 安裝步驟
官方文檔安裝點(diǎn)這里
第一步
確定自己的內(nèi)核以及系統(tǒng)沒問題之后,進(jìn)行一下卸載舊版本,如果報(bào)告未安裝這些包,則沒有問題。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
第二步
安裝軟件包并且配置鏡像倉(cāng)庫(kù)
安裝軟件包的命令 yum install -y yum-utils
yum-util 提供yum-config-manager功能
鏡像倉(cāng)庫(kù)配置 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
這是阿里倉(cāng)庫(kù),對(duì)比官方的鏡像倉(cāng)庫(kù)會(huì)更快(因?yàn)楣俜皆趪?guó)外)。
第三步
檢查更新yum索引并且安裝Docker CE
檢查索引 yum makecache fast
Docker-CE即社區(qū)版(由社區(qū)維護(hù)和提供技術(shù)支持,為免費(fèi)版本,適合個(gè)人開發(fā)人員和小團(tuán)隊(duì)使用),EE 即企業(yè)版(為收費(fèi)版本,由售后團(tuán)隊(duì)和技術(shù)團(tuán)隊(duì)提供技術(shù)支持,專為企業(yè)開發(fā)和IT團(tuán)隊(duì)而設(shè)計(jì)。 相比Docker-EE,增加一些額外功能,更重要的是提供了更安全的保障)
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
或者你想安裝特定版本 可以用這個(gè)指令
yum list docker-ce --showduplicates | sort -r 查看docker版本
yum -y install docker-ce-18.03.1.ce 安裝18.03.1.ce版本
如果你用的寶塔界面,那么可以直接去寶塔官網(wǎng) 軟件商店下載Docker(比較方便)
如果你是騰訊云服務(wù)器,那么可以在服務(wù)器界面,點(diǎn)擊更多
點(diǎn)擊重裝系統(tǒng),選擇docker鏡像也可以直接安裝,很方便
第四步
啟動(dòng)docker并且測(cè)試版本
如果你安裝完成了,那么來嘗試一下啟動(dòng)docker吧!
systemctl start docker
如果沒有報(bào)錯(cuò),那說明你啟動(dòng)成功了,然后我們?cè)O(shè)置一下開機(jī)自啟動(dòng)。
systemctl enable docker
隨后我們檢查一下docker的版本
docker version
沒有問題!
docker都啟動(dòng)了,那能不玩一下?我們從最開始的helloworld開始!
docker run hello-world 這就是啟動(dòng)鏡像的命令
如果你的界面出現(xiàn)了這個(gè),那么說明你的docker沒有問題!
此時(shí)我們查看一下docker的鏡像
docker images
我們會(huì)發(fā)現(xiàn)剛才的hello-world就在里面!
第五步
最后就是我們的停止docker和卸載docker了
systemctl stop docker
這是停止的指令
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
卸載首先卸載docker,然后刪除docker的目錄。
三、鏡像加速
這個(gè)東西的話可以在阿里云設(shè)置。
登錄阿里云,進(jìn)入控制臺(tái),點(diǎn)擊彈性計(jì)算,容器服務(wù),容器鏡像服務(wù),在鏡像工具里面有一個(gè)鏡像加速器,選擇對(duì)應(yīng)版本的操作文檔跟著來就好了。(騰訊云個(gè)人版本好像沒有加速)
四、run的工作原理
五、Dokcer怎么工作的
docker是一個(gè)client-server結(jié)構(gòu)的系統(tǒng),docker的守護(hù)進(jìn)程一直在后臺(tái)運(yùn)行在主機(jī)上(好比裝了個(gè)mysql,一直在后臺(tái)運(yùn)行),通過Socket從客戶端訪問。Dockerserver(服務(wù)進(jìn)程)接收到dockerclient的指令,就會(huì)執(zhí)行這個(gè)命令。
客戶端連接到守護(hù)進(jìn)程之后它會(huì)啟動(dòng)一些容器,都在服務(wù)之內(nèi),通過這個(gè)守護(hù)進(jìn)程造作容器資源(容器里面就好比有個(gè)小的linux虛擬機(jī) 可以跑 占用資源進(jìn)程很少,互相隔離,如果想從外部訪問要進(jìn)行一個(gè)連通)
六、Docker為什么比VM快
Docker有更少的抽象層
vm要虛擬出硬件才行,而docker沒有這一層,直接在主機(jī)安裝服務(wù),運(yùn)行在服務(wù)里的 每個(gè)隔離的都是容器 由于docker不需要Hypervisor實(shí)現(xiàn)硬件資源虛擬化 運(yùn)行在docker容器上的程序直接使用的都是實(shí)際物理機(jī)的硬件資源。因此在CPU、內(nèi)存利用率上docker將會(huì)在效率上有明顯優(yōu)勢(shì)。
Docker不需要Guest OS
docker利用的宿主機(jī)的內(nèi)核,vm是需要GuestOS。 docker不用重新加載一個(gè)操作系統(tǒng)內(nèi)核,避免引導(dǎo),虛擬機(jī)需要加載GuestOS,時(shí)間是分鐘級(jí)別。docker是利用宿主機(jī)的操作系統(tǒng),就不需要在虛擬出來了,省略了這個(gè)復(fù)雜的過程,時(shí)間是秒級(jí)。Docker底層用的是物理機(jī)的資源,虛擬機(jī)需要模擬物理機(jī)的操作系統(tǒng),所以Docker加載得更快,而虛擬機(jī)更慢。
文章來源:http://www.zghlxwxcb.cn/news/detail-792137.html
七、寫在最后
創(chuàng)作不易,如果覺得內(nèi)容對(duì)你有幫助,麻煩給個(gè)三連關(guān)注支持一下我!
目前正在更新的系列:從0開始的藍(lán)橋杯省一之路,云原生系列。
感謝各位的觀看,文章?lián)诫s個(gè)人理解,如有錯(cuò)誤請(qǐng)聯(lián)系我指出~文章來源地址http://www.zghlxwxcb.cn/news/detail-792137.html
到了這里,關(guān)于【云原生 | 從零開始學(xué)Docker】一、Docker的安裝,啟動(dòng)以及工作原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!