docker寄悯、jenkins實(shí)踐

一、docker使用背景

關(guān)于虛擬化堕义、docker容器原理以及使用背景等猜旬,官網(wǎng)、各種博客技術(shù)網(wǎng)站有更專業(yè)的解釋;

PS:個(gè)人經(jīng)驗(yàn)洒擦,如果有實(shí)際工程實(shí)踐或項(xiàng)目需求椿争,能更好理解docker原理、為什么使用docker容器秘遏,學(xué)習(xí)原理對(duì)于構(gòu)建鏡像丘薛、運(yùn)行容器有很大幫助嘉竟;

二邦危、docker安裝說明

1、詳細(xì)docker工具相關(guān)組件(client舍扰、engine倦蚪、compose、k8s等)边苹、版本(ce社區(qū)版陵且、en企業(yè)版)、主流os下如何安裝(包括docker版本對(duì)應(yīng)宿主os版本要求):官網(wǎng)使用安裝說明个束;

經(jīng)驗(yàn)慕购、建議:

1)docker安裝對(duì)操作系統(tǒng)有許多依賴組件,對(duì)于linux服務(wù)器茬底,最好使用操作系統(tǒng)包管理安裝工具沪悲,會(huì)自動(dòng)關(guān)聯(lián)下載依賴組件,yum阱表、apt-get等殿如;

2)centos環(huán)境:

3)如何驗(yàn)證是否安裝成功:

3)遇到依賴組件版本問題,查看啟動(dòng)日志:

三最爬、docker工程實(shí)踐

1涉馁、Dockerfile編寫、使用

1)流程:Dockerfile編寫->通過Dockerfile構(gòu)建image->通過image運(yùn)行容器爱致,構(gòu)建時(shí)通過docker client自動(dòng)send到docker engine進(jìn)行處理

2)Dockerfile烤送,構(gòu)建鏡像大多數(shù)情況要依賴基礎(chǔ)層,如果本地不存在要使用的鏡像糠悯,默認(rèn)會(huì)從docker hub(類似GitHub)拉取鏡像胯努,此處應(yīng)注意所需鏡像版本tag(centos:tag),默認(rèn)tag是latest逢防,docker hub已經(jīng)提供許多官方鏡像叶沛,可登錄查看具體鏡像版本、信息等忘朝,根據(jù)需要選擇灰署;

根據(jù)需要選擇設(shè)置工作目錄,復(fù)制內(nèi)容(文件或目錄),此處COPY溉箕、ADD均可用晦墙,COPY是純復(fù)制操作,ADD如果操作文件相當(dāng)于COPY肴茄,如果是軟件包晌畅,會(huì)進(jìn)行COPY且解壓,此時(shí)可換成COPY或者把軟件包先放入一級(jí)目錄下寡痰;如果操作二級(jí)目錄抗楔,默認(rèn)會(huì)把二級(jí)目錄下的內(nèi)容復(fù)制,所以如果想操作復(fù)制整個(gè)二級(jí)目錄拦坠,目的路徑結(jié)尾帶/(/aiwandeweiss與/aiwandeweiss/此處效果不同)连躏;如果想過濾某些內(nèi)容(文件或目錄),可以使用.dockerignore(原理同.gitignore)進(jìn)行忽略贞滨,構(gòu)建時(shí)可以觀察下send context內(nèi)容大小

RUN盡量將相同操作的命令&&執(zhí)行入热,這樣減少鏡像層次,如果是復(fù)雜鏡像晓铆,關(guān)于鏡像支持最大層次概说、層次與生成鏡像大小關(guān)系是需要格外注意的

通過鏡像運(yùn)行的容器的expose端口可根據(jù)需要定制礁击,正常可在運(yùn)行容器時(shí)可使用-p選項(xiàng)進(jìn)行主機(jī)端口與容器expose端口映射,這樣通過訪問主機(jī)端口會(huì)間接訪問到容器端口

CMD啟動(dòng)容器時(shí)的start命令

更多Dockerfile可使用命令可詳見官網(wǎng)或技術(shù)博客:官網(wǎng)Dockerfile編寫說明

2壳影、image構(gòu)建

1)docker client可使用命令岭接,終端執(zhí)行docker --help名眉,會(huì)列出支持的命令壤追,高級(jí)用法可參見官網(wǎng)或技術(shù)博客,此處不做具體推薦鏈接

2)本人所使用的命令均為常用命令示弓,且也在學(xué)習(xí)研究階段讳侨,技術(shù)大牛可忽略

構(gòu)建時(shí)可以用-f指定Dockerfile文件奏属,如果已經(jīng)進(jìn)入本地用于構(gòu)建的目錄下跨跨,默認(rèn)會(huì)識(shí)別當(dāng)前目錄下Dockerfile文件;注意后面的.(點(diǎn))囱皿,專業(yè)詳細(xì)解釋參見:構(gòu)建Context

3勇婴、運(yùn)行container

參數(shù)-v,允許掛載主機(jī)目錄到容器內(nèi)嘱腥,當(dāng)然在構(gòu)建鏡像時(shí)也可以使用VOLUME命令

4耕渴、volume卷

可以作數(shù)據(jù)持久化,動(dòng)態(tài)變化內(nèi)容mount等齿兔,實(shí)際工程實(shí)踐用處很大橱脸,根據(jù)實(shí)際需求選擇

--volume-driver可以選擇Optional volume driver for the container

--volumes-from可以選擇Mount volumes from the specified container(s)

5础米、鏡像、容器空間管理

6添诉、常用命令

四屁桑、jenkins、docker栏赴、shell

1蘑斧、jenkins工程同步

job A 傳遞參數(shù)并觸發(fā) job B

1)首先在jenkins插件管理,安裝 jenkins 參數(shù)化插件:Parameterized Trigger?

2)job A 配置中選擇構(gòu)建后操作Trigger parameterized build on other projects?须眷,把要傳遞的參數(shù)根據(jù)需求參數(shù)化傳遞竖瘾,job B配置中選擇參數(shù)化構(gòu)建,此處參數(shù)名稱與job A要傳遞參數(shù)名稱保持相同柒爸,觸發(fā)job A后job B的同名參數(shù)默認(rèn)會(huì)使用job A傳遞過來的參數(shù)准浴,當(dāng)然job B同名參數(shù)也可以設(shè)置默認(rèn)值事扭,用作job B單獨(dú)構(gòu)建時(shí)使用

2捎稚、shell腳本

awk用法注意:

1)所有容器列表,去掉表頭求橄,且找出特定容器名稱&&屬于特定鏡像的容器id

docker ps -a | awk "{if (NR > 1){if (\$2 == image_n && \$NF == container_n) print \$1}}" image_n="$SPECIAL_VER" container_n="$CONTAINER_NAME"

此處今野,如果awk的command中需要取變量值,要用雙引號(hào)罐农,awk自身內(nèi)置變量$符要用反斜杠(\)轉(zhuǎn)義回取內(nèi)置變量含義条霜;從外部讀入變量值要從command后讀取,否則會(huì)出現(xiàn)變量未定義涵亏,值為0情況

sed用法注意:

1)如果要處理的內(nèi)容本身帶有斜杠(/)宰睡,比如url,sed的命令中斜杠分隔符換成嘆號(hào)分隔符(F睢)

----------------------------------------------------------------------------------------------------------------

PS:文章純屬個(gè)人實(shí)踐隨筆記錄拆内,用于學(xué)習(xí)交流,不用做任何商業(yè)用途宠默;文內(nèi)如果有錯(cuò)誤或者不正確地方麸恍,歡迎指正,十分感謝~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搀矫,一起剝皮案震驚了整個(gè)濱河市抹沪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓤球,老刑警劉巖融欧,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異卦羡,居然都是意外死亡噪馏,警方通過查閱死者的電腦和手機(jī)权她,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逝薪,“玉大人隅要,你說我怎么就攤上這事《茫” “怎么了步清?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)虏肾。 經(jīng)常有香客問我廓啊,道長(zhǎng),這世上最難降的妖魔是什么封豪? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任谴轮,我火速辦了婚禮,結(jié)果婚禮上吹埠,老公的妹妹穿的比我還像新娘第步。我一直安慰自己,他們只是感情好缘琅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布粘都。 她就那樣靜靜地躺著,像睡著了一般刷袍。 火紅的嫁衣襯著肌膚如雪翩隧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天呻纹,我揣著相機(jī)與錄音堆生,去河邊找鬼。 笑死雷酪,一個(gè)胖子當(dāng)著我的面吹牛淑仆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播太闺,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼糯景,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了省骂?” 一聲冷哼從身側(cè)響起蟀淮,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钞澳,沒想到半個(gè)月后怠惶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轧粟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年策治,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脓魏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡通惫,死狀恐怖茂翔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情履腋,我是刑警寧澤珊燎,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站遵湖,受9級(jí)特大地震影響悔政,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜延旧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一谋国、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迁沫,春花似錦芦瘾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逢勾。三九已至牡整,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溺拱,已是汗流浹背逃贝。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留迫摔,地道東北人沐扳。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像句占,于是被迫代替她去往敵國(guó)和親沪摄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容