久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

作為云原生時(shí)代的開(kāi)發(fā)人員,,你要了解dockerfile的這些事兒

 新用戶(hù)26922hFh 2022-01-23

  一、docker容器的制作方式

  第一種為從容器構(gòu)建鏡像,,即容器鏡像,,通過(guò)docker commit 的方式進(jìn)行構(gòu)建,該方法本菜鳥(niǎo)并不推薦,,原因有如下幾點(diǎn):1)鏡像為分層結(jié)構(gòu),,容器則為鏡像頂層加了一個(gè)可寫(xiě)層,這一方式構(gòu)建的鏡像極容易鏡像過(guò)大,。2)容器鏡像無(wú)法確定這一層可寫(xiě)層內(nèi)的內(nèi)容,,對(duì)于安全性上,存在問(wèn)題,,而且也不易維護(hù),。

  第二種鏡像構(gòu)建的方法則為dockerfile,通過(guò)dockerfile來(lái)控制鏡像的構(gòu)建,。這個(gè)也是官方推薦的方案,,同時(shí)本人也推崇此方案。

  二,、dockerfile介紹

  dockerfile為一個(gè)純文本文件,,通過(guò)指令來(lái)控制構(gòu)建,常用指令如下:

  1.FROM 此指令后面跟隨的為基礎(chǔ)鏡像,。例如:FROM centos:7 引用基礎(chǔ)鏡像centos:7

  2.MAINTAINER 此指令用于維護(hù)構(gòu)建者信息,。例如:MAINTAINER XuPangzi Pangzi@example

  3.LABEL 用于添加標(biāo)簽,。例如:LABEL BASE FOR SPRING-CLOUD

  4.COPY 用于拷貝文件,不解壓,。例如:COPY tomcat.tar /opt/

  5.ADD 用戶(hù)拷貝文件,,可解壓。例如:ADD tomcat.tar /opt/

  6 用于執(zhí)行shell命令,。例如:RUN mkdir -p /app/{log,data,conf,lib}

  7DIR 用于設(shè)置工作目錄,,即進(jìn)入容器后的默認(rèn)目錄。例如:WORKDIR /app

  8.USER 為運(yùn)行shell命令的用戶(hù),。例如:USER app

  USER app:app

  USER 500

  USER 500:500

  USER app:500

  USER 500:app

  9.EXPOSE 聲明端口,。例如:EXPOSE 8881

  10.ENV 環(huán)境變量。例如:ENV MYSQL_PORT 8306

  11.ENTRYPOINT 容器啟動(dòng)時(shí)執(zhí)行的命令,,不會(huì)被docker run 覆蓋,。例如:ENTRYPOINT [“/bin/bash”,”-C”,”

  /opt/apache-tomcat/start.sh”] exec 風(fēng)格 ENTRYPOINT /bin/bash -C

  /opt/apache-tomcat/start.sh shell風(fēng)格

  12.CMD 容器啟動(dòng)時(shí)執(zhí)行的shell命令

  

  三、如何構(gòu)建docker鏡像

  談完dockerfile,,該談一下構(gòu)建鏡像了,。通常都是采用 docker build -t example:v1 . 在dockerfile所在目錄執(zhí)行即可,同時(shí)ADD和COPY的文件也需要在dockerfile同級(jí),,不過(guò)為了匹配流水線(xiàn)作業(yè),,通常會(huì)采用另外一種方式進(jìn)行構(gòu)建:

  1.用戶(hù)自備dockerfile 同時(shí)dockerfile以應(yīng)用來(lái)命名,例如APP1_dockerfile,,在構(gòu)建鏡像時(shí),,執(zhí)行命令 docker build –no-cache=true -t app_A:v1 -f APP1_dockerfile .

  2.將dockerfile植入到構(gòu)建腳本中,通過(guò)構(gòu)建是引入的減肥參數(shù)來(lái)生成dockerfile 同時(shí)構(gòu)建鏡像,,此方式下仍建議采用命令docker build –no-cache=true -t app_A:v1 -f APP1_dockerfile .

  實(shí)踐:

  1.鏡像最好是自己構(gòu)建,,從dockerhub或其他平臺(tái)pull的私人鏡像,無(wú)法保證是否里面埋有不安全插件,,為了保障安全,,推薦自己構(gòu)建鏡像

  2.選擇恰當(dāng)?shù)幕A(chǔ)鏡像,核心應(yīng)用,,選擇較大且穩(wěn)定的鏡像,,比如centos,ubuntu,,但該鏡像的缺點(diǎn)是容易使生成的業(yè)務(wù)鏡像較大,,比如centos7+java8+tomcat+應(yīng)用,輕松過(guò)G,,若是前端等,則可以使用小巧的基礎(chǔ)鏡像,,比如alpine,,busybox,,debian等,但該鏡像也有不足,,鏡像追求輕量級(jí),,很多基礎(chǔ)工具都沒(méi)有,需要用戶(hù)自行安裝,。

  3.構(gòu)建鏡像時(shí)要保證層數(shù)盡可能的少,,此處有一技巧,RUN 后面可跟隨多條shell命令,,以&鏈接,,同時(shí)執(zhí)行完后一定要記得刪除無(wú)用文件,以保障鏡像最小化,。

  所以基于以上幾點(diǎn),,可根據(jù)公司需求,構(gòu)建幾版基礎(chǔ)鏡像,,比如1,、alpine+nginx+lua+curl+telnet等網(wǎng)絡(luò)調(diào)試工具的前端基礎(chǔ)鏡像。2,、alpine+java+tomcat+curl+telnet等調(diào)試工具的java基礎(chǔ)鏡像,。3、基于centos和Ubuntu的核心服務(wù)鏡像,。等等等等,,將基礎(chǔ)鏡像構(gòu)建好后,就可以根據(jù)基礎(chǔ)鏡像設(shè)計(jì)持續(xù)集成流水線(xiàn)來(lái)自動(dòng)化構(gòu)建業(yè)務(wù)鏡像了,。

  四,、基礎(chǔ)鏡像

  1、busybox

  此鏡像集成了上百個(gè)linux常用命令,,且鏡像極小,,大約2M,通過(guò)docker pull busybox:latest 即可,,這個(gè)通常用來(lái)進(jìn)行測(cè)試,,比如寫(xiě)個(gè)yaml啥的

  2、alpine

  此鏡像為一個(gè)輕量級(jí)安全向鏡像,,大小僅5M,,關(guān)注安全,性能,,資源效能,,通過(guò)docker pull alpine可拉取鏡像。鑒于我很多鏡像都基于此鏡像,這里多叨叨幾句,。此鏡像采用apk安裝應(yīng)用,,可在dockerfile

  中添加源

  中科大源:echo “

  mirrors.ustc/alpine/" > /etc/apk/repositories

  阿里源:echo “

  mirrors.aliyun/alpine/" > /etc/apk/repositories

  清華源:echo “

  mirror.tuna.tsinghua/alpine/" > /etc/apk/repositories

  apk –update add –no-cache

  即可安裝,不過(guò)記得在安裝后刪除緩存,,使鏡像保持最小

  3,、ubuntu/centos

  這兩個(gè)屬于重量級(jí)的鏡像,就放在一起說(shuō)吧,,比較穩(wěn)定,,不過(guò)就是容易搞的鏡像超大,輕松過(guò)G,,恐怖如斯,,如果有需要jdk和tomcat來(lái)運(yùn)行的java應(yīng)用,請(qǐng)做好思想準(zhǔn)備

  五,、參考資料

  1.你必須知道的Dockerfile

  cnblogs/edisonchou/p/dockerfile_inside_introduction.html

  cnblogs/edisonchou/

  2. Dockerfile命令詳解

  cnblogs/yanh0606/p/11360936.html

  3.Dockerfile 中的 COPY 與 ADD 命令

  cnblogs/sparkdev/p/9573248.html

  cnblogs/sparkdev/

  4.容器技術(shù)之Dockerfile (一)

  cnblogs/qiuhom-1874/p/13019411.html

  cnblogs/qiuhom-1874/

  

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多