Docker學(xué)習(xí)筆記

遇到這些問(wèn)題可以考慮使用Docker

  • 合作開(kāi)發(fā)的時(shí)候,在本機(jī)可以跑,別人的電腦跑不起來(lái)

    • 這里我們拿Java Web應(yīng)用程序舉例几迄,我們一個(gè)Java Web應(yīng)用程序涉及很多東西,比如JDK木羹、tomcat解孙、spring等等。當(dāng)這些其中某一項(xiàng)版本不一致的時(shí)候脐瑰,可能就會(huì)導(dǎo)致應(yīng)用程序跑不起來(lái)這種情況廷臼。Docker則將程序直接打包成鏡像,直接運(yùn)行在容器中即可寂恬。
  • 服務(wù)器自己的程序掛了莱没,結(jié)果發(fā)現(xiàn)是別人程序出了問(wèn)題把內(nèi)存吃完了,自己程序因?yàn)閮?nèi)存不夠就掛了

    • 這種也是一種比較常見(jiàn)的情況饰躲,如果你的程序重要性不是特別高的話臼隔,公司基本上不可能讓你的程序獨(dú)享一臺(tái)服務(wù)器的躬翁,這時(shí)候你的服務(wù)器就會(huì)跟公司其他人的程序共享一臺(tái)服務(wù)器盯拱,所以不可避免地就會(huì)受到其他程序的干擾,導(dǎo)致自己的程序出現(xiàn)問(wèn)題狡逢。Docker就很好解決了環(huán)境隔離的問(wèn)題奢浑,別人程序不會(huì)影響到自己的程序。
  • 公司要弄一個(gè)活動(dòng)雀彼,可能會(huì)有大量的流量進(jìn)來(lái),公司需要再多部署幾十臺(tái)服務(wù)器

    • 在沒(méi)有Docker的情況下袜刷,要在幾天內(nèi)部署幾十臺(tái)服務(wù)器莺丑,這對(duì)運(yùn)維來(lái)說(shuō)是一件非常折磨人的事,而且每臺(tái)服務(wù)器的環(huán)境還不一定一樣萧豆,就會(huì)出現(xiàn)各種問(wèn)題昏名,最后部署地頭皮發(fā)麻。用Docker的話份殿,我只需要將程序打包到鏡像嗽交,你要多少臺(tái)服務(wù),我就給你跑多少容器夫壁,極大地提高了部署效率。

Docker特點(diǎn)

  • 標(biāo)準(zhǔn)化交付:Docker將應(yīng)用打包成標(biāo)準(zhǔn)化單元梅肤,用于交付、部署俊啼;
  • 輕量級(jí):容器及包含了軟件運(yùn)行所需的所有環(huán)境左医,而且非常輕量級(jí)
  • 高可靠:容器化的應(yīng)用程序,可以在任何Linux環(huán)境中始終如一的運(yùn)行
  • 隔離性:容器化的應(yīng)用程序跛十,具備隔離性秕硝,這樣多團(tuán)隊(duì)可以共享同一Linux系統(tǒng)資源

虛擬機(jī)和Docker比較

特性 容器 虛擬機(jī)
啟動(dòng) 秒級(jí) 分鐘級(jí)
硬盤(pán)使用 一般為MB 一般為GB
性能 接近原生硬件 弱雞
系統(tǒng)支持量 單機(jī)可跑幾十個(gè)容器 單機(jī)幾個(gè)虛擬OS
運(yùn)行環(huán)境 主要在Linux 主要在window

相關(guān)概念

  • 宿主機(jī):安裝Docker守護(hù)進(jìn)程的Linux服務(wù)器远豺,稱之為宿主機(jī)。
  • 鏡像image:就相當(dāng)于是一個(gè) root 文件系統(tǒng)霎苗。除了提供容器運(yùn)行時(shí)所需的程序榛做、庫(kù)内狸、資源、配置等文件外昆淡,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)昂灵。
  • 容器container:容器是鏡像運(yùn)行后的實(shí)體,可以啟動(dòng)眨补,停止,刪除含思,暫停等操作。
  • 倉(cāng)庫(kù)repository:存放鏡像的中心饲做,最常使用的Registry公開(kāi)服務(wù)遏弱,是官方的Docker Hub,這也是默認(rèn)的 Registry泪姨,并擁有大量的高質(zhì)量的官方鏡像虹脯。

遇到問(wèn)題

docker容器中無(wú)法使用vim命令

執(zhí)行命令:apt-get update

執(zhí)行命令:apt-get install vim -y

常用命令

  • systemctl start docker 啟動(dòng)docker服務(wù)
  • systemctl stop docker 停止docker服務(wù)
  • systemctl status docker 查看docker服務(wù)狀態(tài)
  • systemctl enable docker 開(kāi)機(jī)啟動(dòng)docker服務(wù)
  • docker info 查看docker概要信息
  • docker -v 查看版本
  • docker images 查看本地所有鏡像
  • docker search 鏡像名稱
  • docker pull 鏡像名稱
  • docker rmi 鏡像ID
  • docker rmi 鏡像ID 刪除鏡像
  • docker ps 查看容器
  • docker run 參數(shù) 鏡像名稱:鏡像標(biāo)簽 /bin/bash 創(chuàng)建容器:交互式、守護(hù)式

創(chuàng)建容器常用的參數(shù)說(shuō)明:

## 命令參數(shù)詳解 
-i:表示運(yùn)行容器,如果不加該參數(shù)那么只是通過(guò)鏡像創(chuàng)建容器唇敞,而不啟動(dòng)咒彤。 
-t:表示容器啟動(dòng)后會(huì)進(jìn)入其命令行。加入這兩個(gè)參數(shù)后旷档,容器創(chuàng)建就能登錄進(jìn)去歇拆。即分配一個(gè)偽終端(如果 只加it兩個(gè)參數(shù),創(chuàng)建后就會(huì)自動(dòng)進(jìn)去容器)厂庇。 
-d:在run后面加上-d參數(shù),則會(huì)創(chuàng)建一個(gè)守護(hù)式容器在后臺(tái)運(yùn)行(這樣創(chuàng)建容器后不會(huì)自動(dòng)登錄容器)输吏。 
--name :為創(chuàng)建的容器命名。 
-v:表示目錄映射關(guān)系(前者是宿主機(jī)目錄贯溅,后者是映射到宿主機(jī)上的目錄)它浅,可以使用多個(gè)-v做多個(gè)目錄 或文件映射。注意:最好做目錄映射姐霍,在宿主機(jī)上做修改,然后共享到容器上黔衡。 
-p:表示端口映射,前者是宿主機(jī)端口夜牡,后者是容器內(nèi)的映射端口侣签。可以使用多個(gè)-p做多個(gè)端口映射影所,例如: 可以將Docker中Tomcat容器的8080端口映射到宿主機(jī)上的某一個(gè)端口8080猴娩,那么以后訪問(wèn)tomcat只需 要:http://宿主機(jī)的IP:8080/ 
進(jìn)入容器之后,初始化執(zhí)行的命令:/bin/bash卷中;可寫(xiě)可不寫(xiě)
  • docker run -it --name=容器名稱 鏡像名稱:標(biāo)簽 /bin/bash 交互式
  • docker run -di --name=容器名稱 鏡像名稱(或鏡像ID):標(biāo)簽 /bin/bash 守護(hù)式
  • docker exec -it 容器名稱 (或者容器ID) /bin/bash 進(jìn)入容器
  • docker start 容器名稱(或者容器ID) 啟動(dòng)容器
  • docker stop 容器名稱(或者容器ID) 停止容器
  • docker rm 容器名稱(容器ID) 刪除容器(無(wú)法刪除正在運(yùn)行的容器蟆豫,需要先停止容器)

數(shù)據(jù)卷

數(shù)據(jù)卷是宿主機(jī)中的一個(gè)目錄或文件,當(dāng)容器目錄和數(shù)據(jù)卷目錄綁定后栈幸,對(duì)方的修改會(huì)立即同步帮辟。

一個(gè)數(shù)據(jù)卷可以被多個(gè)容器同時(shí)掛載,一個(gè)容器也可以被掛載多個(gè)數(shù)據(jù)卷织阅。

簡(jiǎn)單來(lái)說(shuō)數(shù)據(jù)卷本質(zhì)其實(shí)是共享文件夾荔棉,是宿主機(jī)與容器間數(shù)據(jù)共享的橋梁蒿赢。

命令:

  • docker run ... –v 宿主機(jī)目錄(文件):容器內(nèi)目錄(文件) ...
  • 如果宿主機(jī)目錄不存在,會(huì)自動(dòng)創(chuàng)建
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末壹若,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子养篓,更是在濱河造成了極大的恐慌赂蕴,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碧注,死亡現(xiàn)場(chǎng)離奇詭異糖赔,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)逝变,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)刻撒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)声怔,“玉大人,你說(shuō)我怎么就攤上這事醋火。” “怎么了柿冲?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵兆旬,是天一觀的道長(zhǎng)丽猬。 經(jīng)常有香客問(wèn)我,道長(zhǎng)脚祟,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任邮丰,我火速辦了婚禮铭乾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘片橡。我一直安慰自己,他們只是感情好吹泡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布爆哑。 她就那樣靜靜地躺著舆吮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪色冀。 梳的紋絲不亂的頭發(fā)上锋恬,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天嬉挡,我揣著相機(jī)與錄音索守,去河邊找鬼卵佛。 笑死截汪,一個(gè)胖子當(dāng)著我的面吹牛挫鸽,可吹牛的內(nèi)容都是我干的丢郊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼谴忧!你這毒婦竟也來(lái)了沾谓?” 一聲冷哼從身側(cè)響起均驶,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎腾它,沒(méi)想到半個(gè)月后死讹,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體回俐,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡单默,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了境蜕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粱年。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖罚拟,靈堂內(nèi)的尸體忽然破棺而出台诗,到底是詐尸還是另有隱情完箩,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布拉队,位于F島的核電站弊知,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏粱快。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一事哭、第九天 我趴在偏房一處隱蔽的房頂上張望漫雷。 院中可真熱鬧,春花似錦鳍咱、人聲如沸珊拼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)澎现。三九已至,卻和暖如春每辟,著一層夾襖步出監(jiān)牢的瞬間剑辫,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工渠欺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妹蔽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓挠将,卻偏偏與公主長(zhǎng)得像胳岂,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舔稀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355