為什么要用docker

      網(wǎng)友投稿 735 2025-03-31

      本文旨在用最通俗的語言講述最枯燥的基本知識

      最近Docker突然火得不得了,到處都是談?wù)揇ocker的聲音,相信大家和小編一樣的心情,看這個東西有點高大上,但嘗試去閱讀Docker文章時又發(fā)現(xiàn)概念很模糊、不接地氣、難以理解、無從下手...于是三天打魚兩天曬網(wǎng),最終不了了之,反正公司也沒要求用這玩意兒,不費勁了...

      這不,當(dāng)前幾天項目要求快速上線并且部署多臺服務(wù)器環(huán)境時,小編一臺一臺服務(wù)器的yum install、vim、restart...想屎的心都有,那時小編心里想要是有一個這么一個U盤,能把整個環(huán)境一臺一臺的Ctrl+V過去,那該多好啊。那時腦子一下子閃過一個念頭:Docker不就是我想擁有的那個U盤嗎。

      懷著這樣的一個念頭,小編花了一些時間去查閱Docker相關(guān)的書籍、看視頻、逛論壇,剛開始學(xué)習(xí)時非常難受,搞不懂什么是容器什么是鏡像什么是鯨魚船...而涉及到一些原理底層的知識,書籍里的那些概念比代碼都能懂,小編硬啃了一段時間并且實操了幾次之后,再回過頭來,才豁然開朗。念及許多想要學(xué)Docker卻苦于難以入門的開發(fā)者們,正在學(xué)習(xí)卻很掙扎的初學(xué)者們,故而把小編這段時間的學(xué)習(xí)成果,以一個初學(xué)者的角度,遵循循序漸進的原則,編成一份通俗易懂的文章,希望能以此引導(dǎo)入門,早日成Docker大神。

      文章提綱: 1. 什么是Docker 2. Docker對我們有什么用處 3. Docker安裝和使用 4. 彩蛋

      1. 什么是Docker

      什么是docker?恐怕90%的人腦子一閃而過的都是那張圖:一條鯨魚背上扛著一堆箱子,圖片下方是大大的“docker”。 docker是什么? 是鯨魚? 還是一堆箱子? 或者說是載著箱子的鯨魚? ....這里小編不做解釋,先引用一下官方的解釋:?Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。?顧名思義,docker是一個容器引擎,容器且不說,什么是引擎? 我們知道: 汽車的引擎是發(fā)動機,有了發(fā)動起,汽車才能跑起來 游戲需要游戲引擎(如Unity3D..),基于引擎的開發(fā),能讓游戲動起來。 如官言,docker也是一種引擎,基于這個引擎,開發(fā)者能讓他們開發(fā)的應(yīng)用處于一個有隔離性的、可移植性的容器中,以便于發(fā)布于各種機器中而無需考慮兼容性問題。 因此就不難解釋,為什么docker的logo是一條裝著一堆箱子的鯨魚 這是因為:docker扮演的是圖中鯨魚的角色,而鯨魚之上的集裝箱就是一個個容器,容器中是我們開發(fā)的應(yīng)用程序(不僅限于web應(yīng)用),每個容器都有自己獨立的環(huán)境(環(huán)境設(shè)置、網(wǎng)絡(luò)、文件系統(tǒng)...),互不干擾。而每個箱子,又可以打包成一個新的鏡像,放到其它服務(wù)器的docker環(huán)境中直接運行,不再需要重復(fù)安裝程序運行環(huán)境。

      上面的解釋插入了兩個生疏的概念:

      鏡像

      容器

      我們先講容器 容器,顧名思義:就是裝東西的器皿,在docker中,容器就是裝載我們的應(yīng)用程序的器皿,在docker的logo中,容器就是一個個箱子。我們知道,運行JavaWeb應(yīng)用程序需要有Tomcat,那么我們就需要創(chuàng)建一個Tomcat的容器,才能把我們的程序放進去運行。

      那么,容器哪里來的呢

      我們知道,給電腦安裝Windows系統(tǒng)需要有Windows鏡像,因此給docker安裝容器也是需要鏡像的,所以,通俗一點,鏡像就類似于我們?nèi)粘V械陌惭b軟件,甚至說是操作系統(tǒng)鏡像更為形象點。

      那容器和鏡像有什么關(guān)系?

      網(wǎng)上說是類和對象的關(guān)系,沒錯,但是這樣的比喻沒什么實際卵用。

      我們知道:要運行一個web程序,需要有個Tomcat環(huán)境,需要Tomcat環(huán)境,那就下載一個Tomcat解壓出來,然后把web程序放入Tomcat的webapps中啟動即可,

      那么在docker中要運行一個web程序,就需要有Tomcat容器,需要Tomcat容器,就得去下載Tomcat鏡像(也可以自己構(gòu)建),把鏡像pull下來之后,運行起來,就是一個Tomcat容器,此時把web程序至于Tomcat掛載的數(shù)據(jù)目錄webapps中既可以運行。

      所以docker中,容器和鏡像的關(guān)系更像是一種動靜的關(guān)系,也就是說,存于倉庫中的鏡像是一個死的軟件,而運行起來的容器則像是一個正在運行的程序(進程)。

      ###2.Docker有什么用

      對docker有了清晰的了解之后,我們心里可能在想: 這玩兒對我有什么用? 我在哪里能用得上? 怎么用才對?

      這里引用幾個案例來讓大家體會體會。

      1.案例一

      前幾天,公司一批服務(wù)器就要到期了,由于服務(wù)器是15年購買的,硬件的性能遠比現(xiàn)在新出的云主機低,因此決定把所有服務(wù)器都換成新一代服務(wù)器,但是小編整準(zhǔn)備動手遷移服務(wù)器時,內(nèi)心一陣陣崩潰感涌上心頭,仔細(xì)一算,每臺服務(wù)器都要做同樣的事情: 1. 安裝jdk、Tomcat、nginx 2. 配置jdk環(huán)境變量和系統(tǒng)變量 3. 配置Tomcat 4. 配置nginx 5. 安裝項目所需的視頻解碼組件 6. 導(dǎo)入項目所需的一些特殊字體 后來決定用docker部署的辦法,在每臺服務(wù)器都把docker安裝之后,只需要在其中一臺服務(wù)器中把Tomcat鏡像從鏡像倉庫拉取下來,把這些配置都設(shè)置好,做成一個自己的鏡像上傳到鏡像倉庫中,之后在其他幾臺服務(wù)器都下載自己做的鏡像,運行于docker中,把代碼上傳,就萬事大吉了。

      案例二

      前不久的圣誕活動中,公司臨時的活動方案在程序員的加班加點中終于上線,但是一上線之后發(fā)現(xiàn)推廣海報中的中文名字亂碼,領(lǐng)導(dǎo)問責(zé)測試人員怎么沒做好測試,測試很委屈的說我已經(jīng)測試無數(shù)遍并且測試報告都提交了,解決了所有問題才上線的;沒辦法只能讓服務(wù)器同事查看正式服務(wù)器中的tomcat配置,發(fā)現(xiàn)原來 tomcat用了默認(rèn)編碼方式:iso8859-1,而測試環(huán)境中是UTF-8。針對這個問題,項目組決定把開發(fā)環(huán)境遷移到docker中,在測試環(huán)境中測試無誤后,把鏡像打包發(fā)布到正式環(huán)境中,解決了環(huán)境不同導(dǎo)致的問題。

      3. docker的安裝

      為什么要用docker

      感知到docker對我們開發(fā)者的好處之后,相信大家也躍躍欲試了吧,下面 就Linux centOS(版本大于等于7.0)系統(tǒng)進行演示docker的安裝步驟:

      1.刪除可能存在的舊版本

      sudo?yum?remove?docker?\ ??????????????????docker-client?\ ??????????????????docker-client-latest?\ ??????????????????docker-common?\ ??????????????????docker-latest?\ ??????????????????docker-latest-logrotate?\ ??????????????????docker-logrotate?\ ??????????????????docker-selinux?\ ??????????????????docker-engine-selinux?\ ??????????????????docker-engine

      安裝一些必備工具:

      yum?install?-y?yum-utils?device-mapper-persistent-data?lvm2

      添加Docker源:

      yum-config-manager?\ ????--add-repo?\ ????https://download.docker.com/linux/centos/docker-ce.repo

      更新yum緩存

      yum?makecache?fast

      安裝

      yum?install?docker-ce

      6.創(chuàng)建docker用戶

      溫馨提示:以下操作不是必備,但是為了養(yǎng)成一個Linux用戶的使用的良好習(xí)慣,小編不建議直接使用root操作,因此創(chuàng)建一個用戶用來操作docker。

      useradd?docker_manager

      docker_manager是用戶名,可以根據(jù)喜好起名,創(chuàng)建完用戶之后,設(shè)置密碼

      passwd?docker_manager?? docker_manager_wkt

      會提示輸入密碼和確認(rèn)密碼,按照提示操作即可

      配置docker用戶的權(quán)限

      visudo

      visudo是配置用戶權(quán)限的文件,在命令行中輸入visudo回車之后,會進入文件操作,找到“# %wheel ALL=(ALL) NOPASSWD: ALL”這一行,把前面的“#”去掉,保存文件

      授權(quán)

      usermod?-aG?wheel,docker?docker_manager

      啟動 Docker CE

      sudo systemctl enable docker sudo systemctl start docker

      此時在命令行中輸入“docker info”之后,能夠展示docker相關(guān)信息,就表示docker安裝成功。

      docker?info

      鏡像加速:

      編輯daemon.json文件(首次安裝daemon.json是個新文件,不要驚訝)

      vim?/etc/docker/daemon.json

      加入以下內(nèi)容:

      { ??"registry-mirrors":?[ ????"https://registry.docker-cn.com" ??] }

      保存,sudo systemctl restart docker重啟即可。

      ###4.彩蛋 上面針對docker使用了一種比較通俗詼諧的語言來講述,也是為了方便讀者能容易的解讀和理解,理解并且成功安裝docker之后,你們就會想方設(shè)法的要把自己的web項目部署到docker了,這我沒說錯吧,大家可以網(wǎng)上查找一些資料去學(xué)習(xí)這一塊,當(dāng)然也可以選擇:

      關(guān)!注!我!

      下篇文章我會對docker網(wǎng)絡(luò)、數(shù)據(jù)卷、常用操作命令和創(chuàng)建自己的docker鏡像、上傳鏡像等做一個全面的解答,之后會docker部署web項目的流程、以及運行Redis、MongoDB、nginx等常用軟件做一些例子講解。

      覺得本文對你有幫助?請分享給更多人?關(guān)注「編程無界」,提升裝逼技能

      本文轉(zhuǎn)載自異步社區(qū)。

      原文鏈接:https://www.epubit.com/articleDetails?id=N3bcdde71-06fb-44fd-a8f7-99693c576f00

      容器 Docker

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:社群經(jīng)驗流程圖制作模板(社群營銷流程圖)
      下一篇:《工業(yè)APP:開啟數(shù)字工業(yè)時代 》 —1.5 工業(yè)數(shù)字化轉(zhuǎn)型
      相關(guān)文章
      国产亚洲精aa成人网站| 久久亚洲精品国产精品婷婷| 亚洲日韩av无码中文| 亚洲欧洲精品久久| 337p日本欧洲亚洲大胆精品555588 | 亚洲一区无码中文字幕乱码| 久久精品九九亚洲精品| 久久精品国产亚洲av成人| 亚洲AV无码AV男人的天堂| 久久亚洲精品国产精品黑人| 亚洲AV天天做在线观看| 久久精品国产精品亚洲色婷婷| 亚洲AV区无码字幕中文色| 亚洲国产成人精品不卡青青草原| 亚洲五月午夜免费在线视频| 久久乐国产精品亚洲综合| 中文字幕一精品亚洲无线一区| 亚洲一区二区三区偷拍女厕| 国产成人A人亚洲精品无码| 久久精品国产亚洲香蕉| 亚洲视频在线免费看| 亚洲人成网站日本片| 亚洲va久久久久| 欧美日韩亚洲精品| 亚洲?v无码国产在丝袜线观看| 亚洲国产日韩成人综合天堂| 国产午夜亚洲不卡| 亚洲国产精品无码久久久蜜芽| 亚洲综合成人网在线观看| 亚洲电影在线免费观看| 亚洲国产乱码最新视频| 亚洲狠狠婷婷综合久久| 亚洲国产V高清在线观看| 国产亚洲一区二区三区在线不卡| 久久精品国产亚洲综合色| 亚洲小视频在线观看| 亚洲av极品无码专区在线观看| 亚洲精品国产第一综合99久久 | 亚洲高清专区日韩精品| 亚洲综合激情视频| 最新国产精品亚洲|