Dockerfile入門(mén):構(gòu)建鏡像的完整指南
目錄一、dockerfile簡(jiǎn)介什么是dockerfiledockerfile是什么為什么要用dockerfileDockerfile、Docker鏡像和Docker容器的關(guān)系二、DockerFile需要注意的編寫(xiě)規(guī)范三、Docekrfile指令解析四、常用的Dockerfile指令詳解、格式與用法4.1 FROM必須4.2 MAINTAINER4.3 USER4.4 ENV必須4.5 VOLUME4.6 EXPOSE4.7 COPY4.8 ADD4.9 WORKDIR4.10 RUN必須4.11 CMD五、docker build構(gòu)建鏡像六、【實(shí)戰(zhàn)】docker自定義鏡像1、編寫(xiě)Dockerfile2、構(gòu)建鏡像3、查看鏡像七、總結(jié)相關(guān)文章一、dockerfile簡(jiǎn)介什么是dockerfileDockerfile 是一個(gè)用來(lái)構(gòu)建鏡像的文本文件文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令(Instruction)和操作命令;每一條指令構(gòu)建一層鏡像因此每一條指令的內(nèi)容就是描述該層鏡像應(yīng)當(dāng)如何構(gòu)建也就是你要執(zhí)行的操作命令。dockerfile是什么dockerfile是純文本文件dockerfile是用來(lái)構(gòu)建鏡像的dockerfile 用于指示 docker image build 命令自動(dòng)構(gòu)建Image的源代碼dockerfile構(gòu)建鏡像的的格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefdocker/spanspan stylecolor:#98c379 build/spanspan stylecolor:#d19a66 -t/spanspan stylecolor:#98c379 要打的鏡像名:版本號(hào)/spanspan stylecolor:#98c379 Dockerfile路徑/span/code/span/spandockerfile構(gòu)建鏡像的的實(shí)例span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefdocker/spanspan stylecolor:#98c379 build/spanspan stylecolor:#d19a66 -t/spanspan stylecolor:#98c379 work:v1/spanspan stylecolor:#98c379 ./span/code/span/span為什么要用dockerfile?在dockerhub中官方提供很多鏡像已經(jīng)能滿(mǎn)足我們99的服務(wù)了,為什么還需要自定義鏡像?解析是官方的鏡像很多同時(shí)也可以滿(mǎn)足我們99的服務(wù)但是如果有的公司要做自己的產(chǎn)品那么官網(wǎng)的鏡像肯定是沒(méi)有的這時(shí)候就需要用到自定義鏡像而自定義鏡像就是dockerfile構(gòu)建成的我們可以用dockerfile自定義寫(xiě)需要的操作來(lái)用dockerfile的指令來(lái)實(shí)現(xiàn)最終采用docker build來(lái)構(gòu)建鏡像構(gòu)建完鏡像可以采用docker save命令打成tar包以便于日后在其他服務(wù)器上使用也可以采用docker push提交到私有鏡像倉(cāng)庫(kù)或dockerhub中。如上圖所示Dockerfile是獨(dú)立于本地docker實(shí)例的一個(gè)文本文件用于自動(dòng)化地構(gòu)建具有特定功能的docker鏡像。Dockerfile鏡像構(gòu)建三部曲1構(gòu)建Dockerfile文件2采用docker build命令構(gòu)建鏡像3采用docker run命令依據(jù)鏡像運(yùn)行容器實(shí)例。Dockerfile、Docker鏡像和Docker容器的關(guān)系從應(yīng)用軟件開(kāi)發(fā)角度來(lái)看它們分別表示軟件開(kāi)發(fā)的三個(gè)階段1Dockerfile是軟件開(kāi)發(fā)的原材料2Docker鏡像是軟件的交付品3Docker容器是Docker交付鏡像的實(shí)例化代表軟件的實(shí)際運(yùn)行過(guò)程??偨Y(jié)Dockerfile面向開(kāi)發(fā)Docker鏡像為交付標(biāo)準(zhǔn)Docker容器與部署、運(yùn)維相關(guān)三則相輔相成缺一不可他們是Docker的三大基石。Docker在實(shí)際運(yùn)行中Dockerfile、Docker鏡像、Docker容器三者的運(yùn)作內(nèi)容如下所示1、Dockerfile定義了進(jìn)程需要的一切內(nèi)容包括代碼執(zhí)行、文件/環(huán)境變量、依賴(lài)包、運(yùn)行環(huán)境、操作系統(tǒng)發(fā)行版本、服務(wù)進(jìn)程、內(nèi)核進(jìn)程等等很多與操作系統(tǒng)底層相關(guān)的內(nèi)容。2、通過(guò)docker build指令會(huì)生成一個(gè)Docker鏡像它是為用戶(hù)提供各種服務(wù)的基礎(chǔ)3、Docker容器則是一個(gè)實(shí)例化的服務(wù)進(jìn)程。二、DockerFile需要注意的編寫(xiě)規(guī)范1. # 代表注釋2.指令必須要大寫(xiě)后面最少需要帶一個(gè)參數(shù)最多無(wú)限制;3.執(zhí)行dockerfile的時(shí)候指令是按照從上到下的順序執(zhí)行的三、Docekrfile指令解析注意指令全部都必須為大寫(xiě)后面跟的是你要執(zhí)行的操作命令指令功能簡(jiǎn)介FROM指定構(gòu)建新image是使用的基礎(chǔ)image通常必須是Dockerfile的第一個(gè)有效指令定義一個(gè)基礎(chǔ)鏡像。LABEL附加到image之上的元數(shù)據(jù)鍵值格式定義一些元數(shù)據(jù)。ENV以鍵值格式設(shè)定環(huán)境變量可被其后的指令所調(diào)用且基于新生成的image運(yùn)行的Container中也會(huì)存在這些變量。RUN以FROM中定義的image為基礎(chǔ)環(huán)境運(yùn)行指令命令生成結(jié)果將作為新image的一個(gè)鏡像層并可由后續(xù)指令所使用。RUN后跟要執(zhí)行的命令。CMD基于dockerfile生成的image運(yùn)行的container時(shí)CMD能夠指定容器中默認(rèn)運(yùn)行的程序因而其只應(yīng)該定義一次。ENTRYPOINT類(lèi)似于CMD指令的功能但不能被命令行指定要運(yùn)行的應(yīng)用程序覆蓋且與CMD共存時(shí)CMD的內(nèi)容將作為該指令中定義的程序的參數(shù)。WORKDIR相當(dāng)于cd切換目錄的命令如果切換的那個(gè)地方?jīng)]有哪個(gè)目錄則會(huì)自動(dòng)創(chuàng)建一個(gè)目錄。COPY相當(dāng)于cp命令復(fù)制主機(jī)上或者前一階段構(gòu)建結(jié)果中需要使用--from選項(xiàng)文件或目錄生成新的鏡像。ADD與COPY指令的功能相似但ADD傳輸壓縮包的時(shí)候是可以解壓的。VOLUME指定基于新生成的Image運(yùn)行Container時(shí)期望作為volume使用的目錄。EXPOSE指定基于新生成的lmage運(yùn)行Container時(shí)期望 暴露的端口但實(shí)際暴露與否取決于docker run”命令的選項(xiàng)支持TCP和UDP協(xié)議。USER為Dockerfile中該指令后面的RUN、CMD和ENTRYPOING指令中要運(yùn)行的應(yīng)用程序指定運(yùn)行者身份UID以及一個(gè)可選的GID。ARG定義專(zhuān)用于build過(guò)程中的變量但僅對(duì)該指標(biāo)之后的調(diào)用生效其值可由命令行選項(xiàng)--build-arg進(jìn)行傳遞。ONBUILD觸發(fā)器生效于由該Dockerfile 構(gòu)建出的新l/mage被用于另一個(gè)Dockerfile中的FROM指令作為基礎(chǔ)鏡像時(shí)。STOPSIGNAL用于通知Container終止的系統(tǒng)調(diào)用信號(hào)。HEALTHCHECK定義檢測(cè)容器應(yīng)用的健康狀態(tài)的具體方法。SHELL為容器定義運(yùn)行時(shí)使用的默認(rèn)shel程序Linux系統(tǒng)默認(rèn)使用 [/bin/sh”-c], Windows默認(rèn)使用 [’cmd, /S,/C]。四、常用的Dockerfile指令詳解、格式與用法必須是寫(xiě)dockerfile必須有的沒(méi)有加的是可選的。4.1 FROM必須指定一個(gè)基礎(chǔ)鏡像必須為第一個(gè)命令。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefFROM/spanspan stylecolor:#98c379 基礎(chǔ)鏡像/span/code/span/span舉例一個(gè)nvidia、cuda10.1的centos7基礎(chǔ)鏡像span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefFROM/spanspan stylecolor:#98c379 nvidia/cuda:10.1-cudnn7-devel-centos7/span/code/span/span4.2 MAINTAINER維護(hù)者信息可以寫(xiě)郵箱編輯人等等。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefMAINTAINER/spanspan stylecolor:#98c379 郵箱/名字/span/code/span/span舉例展示郵箱和名字span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefMAINTAINER/spanspan stylecolor:#98c379 liucy/span span stylecolor:#61afefMAINTAINER/spanspan stylecolor:#98c379 121212qq.com/span span stylecolor:#61afefMAINTAINER/spanspan stylecolor:#98c379 121212163.com/span/code/span/span4.3 USER指定運(yùn)行容器時(shí)的用戶(hù)名或 UID后續(xù)的 RUN 也會(huì)使用指定用戶(hù)。使用USER指定用戶(hù)時(shí)可以使用用戶(hù)名、UID或GID或是兩者的組合。當(dāng)服務(wù)不需要管理員權(quán)限時(shí)可以通過(guò)該命令指定運(yùn)行用戶(hù)。并且可以在之前創(chuàng)建所需要的用戶(hù)格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefUSER/spanspan stylecolor:#98c379 用戶(hù)名/span span stylecolor:#abb2bf/span span stylecolor:#61afefUSER/spanspan stylecolor:#98c379 user:group /span span stylecolor:#abb2bf/span span stylecolor:#61afefUSER/spanspan stylecolor:#98c379 uid /span span stylecolor:#abb2bf/span span stylecolor:#61afefUSER/spanspan stylecolor:#98c379 uid:gid /span span stylecolor:#abb2bf/span span stylecolor:#61afefUSER/spanspan stylecolor:#98c379 user:gid /span span stylecolor:#abb2bf/span span stylecolor:#61afefUSER/spanspan stylecolor:#98c379 uid:group/span/code/span/span舉例指定root用戶(hù)span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefUSER/spanspan stylecolor:#98c379 root/span/code/span/span4.4 ENV必須設(shè)置環(huán)境變量格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefENV/spanspan stylecolor:#98c379 環(huán)境變量路徑/span/code/span/span舉例設(shè)置jdk1.8的環(huán)境變量span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefENV/spanspan stylecolor:#98c379 JAVA_HOME/usr/local/jdk1.8.0_333//span span stylecolor:#61afefENV/spanspan stylecolor:#98c379 export/spanspan stylecolor:#98c379 JRE_HOME/spanspan stylecolor:#e06c75$JAVA_HOME/spanspan stylecolor:#98c379/jre/span span stylecolor:#61afefENV/spanspan stylecolor:#98c379 export/spanspan stylecolor:#98c379 CLASSPATH.:/spanspan stylecolor:#e06c75$JAVA_HOME/spanspan stylecolor:#98c379/lib:/spanspan stylecolor:#e06c75$JRE_HOME/spanspan stylecolor:#98c379/lib/span span stylecolor:#61afefENV/spanspan stylecolor:#98c379 PATH/spanspan stylecolor:#e06c75$JAVA_HOME/spanspan stylecolor:#98c379/bin:/spanspan stylecolor:#e06c75$PATH/span/code/span/span4.5 VOLUME用于指定持久化目錄指定此目錄可以被掛載出去格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefVOLUME/spanspan stylecolor:#98c379 掛載路徑/span/code/span/span舉例掛載到/data目錄span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefVOLUME/spanspan stylecolor:#abb2bf [/spanspan stylecolor:#98c379/data/spanspan stylecolor:#abb2bf]/span/code/span/span4.6 EXPOSE設(shè)置端口EXPOSE指令是聲明運(yùn)行時(shí)容器提供服務(wù)端口這只是一個(gè)聲明在運(yùn)行時(shí)并不會(huì)因?yàn)檫@個(gè)聲明應(yīng)該就會(huì)開(kāi)啟這個(gè)端口的服務(wù)。在Dockerfile中寫(xiě)入這樣的聲明有兩個(gè)好處是幫助鏡像使用者理解這個(gè)鏡像服務(wù)的守護(hù)端口以方便配置映射在運(yùn)行是使隨機(jī)端口映射時(shí)也就是docker run -P(大寫(xiě))時(shí)會(huì)自動(dòng)隨機(jī)映射EXPOSE端口。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefEXPOSE/spanspan stylecolor:#98c379 端口號(hào)/span/code/span/span舉例設(shè)置一個(gè)8080端口span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefEXPOSE/spanspan stylecolor:#d19a66 8080/span/code/span/span4.7 COPY復(fù)制文件相當(dāng)于linux命令中的cp命令功能類(lèi)似ADD但是是不會(huì)自動(dòng)解壓文件也不能訪問(wèn)網(wǎng)絡(luò)資源格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefCOPY/spanspan stylecolor:#98c379 源文件及路徑/spanspan stylecolor:#98c379 目標(biāo)路徑/span/code/span/span舉例復(fù)制一個(gè)mysql到/usr/local/下span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefCOPY/spanspan stylecolor:#98c379 /root/mysql/spanspan stylecolor:#98c379 /usr/local//span/code/span/span4.8 ADD將本地文件添加到容器中tar類(lèi)型文件會(huì)自動(dòng)解壓(網(wǎng)絡(luò)壓縮資源不會(huì)被解壓)可以訪問(wèn)網(wǎng)絡(luò)資源類(lèi)似wget。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefADD/spanspan stylecolor:#98c379 源文件及路徑/spanspan stylecolor:#98c379 目標(biāo)路徑/span/code/span/span舉例移動(dòng)一個(gè)mysql-2-2.tarspan stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefADD/spanspan stylecolor:#98c379 /usr/local/mysql-2-2.tar/spanspan stylecolor:#98c379 /root//span/code/span/span4.9 WORKDIR切換目錄相當(dāng)于linux命令中的cd命令切換到這個(gè)目錄進(jìn)入容器時(shí)就是這個(gè)目錄所以workdir就屬于啟動(dòng)默認(rèn)的目錄。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefWORKDIR/spanspan stylecolor:#98c379 目錄名/span/code/span/span舉例設(shè)置啟動(dòng)就在/data/目錄span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefWORKDIR/spanspan stylecolor:#98c379 /data//span/code/span/span4.10 RUN必須構(gòu)建鏡像時(shí)執(zhí)行的命令執(zhí)行的命令就是你指定的要他干什么使用linux命令就可以。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefRUN/spanspan stylecolor:#98c379 要執(zhí)行的命令/span/code/span/span舉例打鏡像時(shí)下載一個(gè)netstat命令span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefRUN/spanspan stylecolor:#98c379 yum/spanspan stylecolor:#d19a66 -y/spanspan stylecolor:#98c379 install/spanspan stylecolor:#98c379 net-tools/span/code/span/span4.11 CMD構(gòu)建鏡像后調(diào)用也就是在容器啟動(dòng)時(shí)才進(jìn)行調(diào)用。寫(xiě)一次dockerfile只能出現(xiàn)一次CMD而出現(xiàn)CMD的地方就屬于結(jié)尾如果下面有RUN指令則都不執(zhí)行。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefCMD/spanspan stylecolor:#98c379 要執(zhí)行的命令/span/code/span/span舉例執(zhí)行刪除dockerfile打完鏡像要?jiǎng)h除dockerfilespan stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefCMD/spanspan stylecolor:#98c379 rm/spanspan stylecolor:#d19a66 -rf/spanspan stylecolor:#98c379 /data/dockerfile/span/code/span/span五、docker build構(gòu)建鏡像dockerfile構(gòu)建鏡像的的格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefdocker/spanspan stylecolor:#98c379 build/spanspan stylecolor:#d19a66 -t/spanspan stylecolor:#98c379 要打的鏡像名:版本號(hào)/spanspan stylecolor:#98c379 Dockerfile路徑/span/code/span/spandockerfile構(gòu)建鏡像的的實(shí)例span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefdocker/spanspan stylecolor:#98c379 build/spanspan stylecolor:#d19a66 -t/spanspan stylecolor:#98c379 work:v1/spanspan stylecolor:#98c379 ./span/code/span/span六、【實(shí)戰(zhàn)】docker自定義鏡像說(shuō)明此處只是測(cè)試使用并不能用到生產(chǎn)中生產(chǎn)中要根據(jù)自己的情況來(lái)寫(xiě)可以構(gòu)建成鏡像也可以創(chuàng)建容器可以進(jìn)入容器查看這些文件但是web頁(yè)面訪問(wèn)不到因?yàn)闆](méi)有加入jar包之類(lèi)的可以自行放入一個(gè)jar包端口設(shè)置3000然后啟動(dòng)jar包就可以了去訪問(wèn)web頁(yè)面了。前言有一點(diǎn)特別重要構(gòu)建鏡像的時(shí)候要看好你的文件是不是這個(gè)目錄要不然打到一半會(huì)報(bào)錯(cuò)說(shuō)找不到文件切記要記得放文件在放文件的目錄執(zhí)行。1、編寫(xiě)Dockerfilespan stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#7f848eem#創(chuàng)建Dockerfile文本/em/span span stylecolor:#61afefvim/spanspan stylecolor:#98c379 Dockerfile/span/code/span/spanspan stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#7f848eem#設(shè)置基礎(chǔ)鏡像/em/span span stylecolor:#61afefFROM/spanspan stylecolor:#98c379 nvidia/cuda:10.1-cudnn7-devel-centos7/span span stylecolor:#7f848eem#維護(hù)者信息/em/span span stylecolor:#61afefMAINTAINER/spanspan stylecolor:#98c379 liucy/span span stylecolor:#61afefMAINTAINER/spanspan stylecolor:#98c379 121212qq.com/span span stylecolor:#61afefMAINTAINER/spanspan stylecolor:#98c379 121212163.com/span span stylecolor:#7f848eem#指定運(yùn)行時(shí)的用戶(hù)以及鏡像的實(shí)際用戶(hù)/em/span span stylecolor:#61afefUSER/spanspan stylecolor:#98c379 root/span span stylecolor:#7f848eem#下載netstat命令/em/span span stylecolor:#61afefRUN/spanspan stylecolor:#98c379 yum/spanspan stylecolor:#d19a66 -y/spanspan stylecolor:#98c379 install/spanspan stylecolor:#98c379 net-tools/span span stylecolor:#7f848eem#設(shè)置jdk1.8的環(huán)境/em/span span stylecolor:#61afefENV/spanspan stylecolor:#98c379 JAVA_HOME/usr/local/jdk1.8.0_333//span span stylecolor:#61afefENV/spanspan stylecolor:#98c379 export/spanspan stylecolor:#98c379 JRE_HOME/spanspan stylecolor:#e06c75$JAVA_HOME/spanspan stylecolor:#98c379/jre/span span stylecolor:#61afefENV/spanspan stylecolor:#98c379 export/spanspan stylecolor:#98c379 CLASSPATH.:/spanspan stylecolor:#e06c75$JAVA_HOME/spanspan stylecolor:#98c379/lib:/spanspan stylecolor:#e06c75$JRE_HOME/spanspan stylecolor:#98c379/lib/span span stylecolor:#61afefENV/spanspan stylecolor:#98c379 PATH/spanspan stylecolor:#e06c75$JAVA_HOME/spanspan stylecolor:#98c379/bin:/spanspan stylecolor:#e06c75$PATH/span span stylecolor:#7f848eem#開(kāi)放一個(gè)3000端口/em/span span stylecolor:#61afefEXPOSE/spanspan stylecolor:#d19a66 3000/span span stylecolor:#7f848eem#移動(dòng)并解壓Grafana.tar安裝包/em/span span stylecolor:#61afefADD/spanspan stylecolor:#98c379 /root/Grafana.tar/spanspan stylecolor:#98c379 /home//span span stylecolor:#7f848eem#復(fù)制當(dāng)前目錄下的所有到/data/cs/里/em/span span stylecolor:#61afefCOPY/spanspan stylecolor:#98c379 .//spanspan stylecolor:#98c379 /data/home//span span stylecolor:#7f848eem#設(shè)置python3.6.8環(huán)境/em/span span stylecolor:#61afefRUN/spanspan stylecolor:#98c379 cd/spanspan stylecolor:#98c379 /data/Python-3.6.8//spanspan stylecolor:#abb2bf /spanspan stylecolor:#61afef./configure/spanspan stylecolor:#d19a66 --prefix/root/python36/spanspan stylecolor:#abb2bf /spanspan stylecolor:#61afefmake/spanspan stylecolor:#abb2bf /spanspan stylecolor:#61afefmake/spanspan stylecolor:#98c379 install/spanspan stylecolor:#abb2bf /spanspan stylecolor:#61afefln/spanspan stylecolor:#d19a66 -s/spanspan stylecolor:#98c379 /root/python36/bin/python3.6/spanspan stylecolor:#98c379 /usr/bin/python3/spanspan stylecolor:#abb2bf /spanspan stylecolor:#61afefln/spanspan stylecolor:#d19a66 -s/spanspan stylecolor:#98c379 /root/python36/bin/pip3/spanspan stylecolor:#98c379 /usr/bin/pip3/span span stylecolor:#7f848eem#切換到/data/目錄/em/span span stylecolor:#61afefWORKDIR/spanspan stylecolor:#98c379 /data//span span stylecolor:#7f848eem#最后執(zhí)行刪除Dockerfile/em/span span stylecolor:#61afefCMD/spanspan stylecolor:#98c379 rm/spanspan stylecolor:#d19a66 -rf/spanspan stylecolor:#98c379 Dockerfile/span/code/span/span2、構(gòu)建鏡像span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefdocker/spanspan stylecolor:#98c379 build/spanspan stylecolor:#d19a66 -t/spanspan stylecolor:#98c379 dockerfile:v1/spanspan stylecolor:#98c379 ./span/code/span/span等待構(gòu)建完成。3、查看鏡像span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#abb2bf[rootcs ~]# docker images/span span stylecolor:#61afefREPOSITORY/spanspan stylecolor:#98c379 TAG/spanspan stylecolor:#98c379 IMAGE/spanspan stylecolor:#98c379 ID/spanspan stylecolor:#98c379 CREATED/spanspan stylecolor:#98c379 SIZE/span span stylecolor:#61afefdockerfile/spanspan stylecolor:#98c379 v1/spanspan stylecolor:#98c379 15c89s63e742/spanspan stylecolor:#d19a66 2/spanspan stylecolor:#98c379 months/spanspan stylecolor:#98c379 ago/spanspan stylecolor:#98c379 8.5GB/span/code/span/span

相關(guān)新聞

Dify開(kāi)源LLMOps平臺(tái):高效構(gòu)建AI應(yīng)用的實(shí)踐指南

Dify開(kāi)源LLMOps平臺(tái):高效構(gòu)建AI應(yīng)用的實(shí)踐指南

1. 項(xiàng)目概述:Dify作為開(kāi)源LLMOps平臺(tái)的崛起在2023年AI智能體爆發(fā)式增長(zhǎng)的背景下,Dify作為一款開(kāi)源的LLMOps(大語(yǔ)言模型運(yùn)維)平臺(tái)迅速進(jìn)入開(kāi)發(fā)者視野。這個(gè)由國(guó)內(nèi)團(tuán)隊(duì)開(kāi)發(fā)的項(xiàng)目,本質(zhì)上是一個(gè)面向生產(chǎn)環(huán)境的AI應(yīng)用開(kāi)發(fā)框…

2026/8/1 7:10:01 閱讀更多
Unity URP自定義后處理開(kāi)發(fā)指南:從ScriptableRendererFeature原理到Bloom實(shí)戰(zhàn)

Unity URP自定義后處理開(kāi)發(fā)指南:從ScriptableRendererFeature原理到Bloom實(shí)戰(zhàn)

1. 項(xiàng)目概述:為什么URP的自定義后處理是必學(xué)技能?如果你正在用Unity的URP管線做項(xiàng)目,尤其是對(duì)畫(huà)面表現(xiàn)有要求的項(xiàng)目,比如二次元風(fēng)格、賽博朋克或者需要特殊濾鏡效果,那你大概率已經(jīng)遇到過(guò)內(nèi)置后處理(Post-P…

2026/8/1 7:11:37 閱讀更多
rom和ram的區(qū)別是什么

rom和ram的區(qū)別是什么

當(dāng)然。RAM(隨機(jī)存取存儲(chǔ)器)和 ROM(只讀存儲(chǔ)器)是計(jì)算機(jī)系統(tǒng)中最核心的兩種存儲(chǔ)器,它們最根本的區(qū)別在于數(shù)據(jù)的易失性和讀寫(xiě)特性,這也決定了它們?cè)谟?jì)算機(jī)中扮演的完全不同的角色。1. 核心區(qū)別對(duì)比特性維度RA…

2026/8/1 8:09:52 閱讀更多
單片機(jī)/C/C++八股:(三十一)static 關(guān)鍵字的作用

單片機(jī)/C/C++八股:(三十一)static 關(guān)鍵字的作用

上一篇下一篇 static 關(guān)鍵字的作用?static:[adj] 靜態(tài)的 總結(jié)在最后面! 可直接看static 變量稱(chēng)為靜態(tài)存儲(chǔ)類(lèi)型的變量,所謂靜態(tài)就是變量在程序運(yùn)行期間一直存在。 static 變量的特點(diǎn)如下: 在內(nèi)存中以固定地址存放&#…

2026/8/2 7:45:16 閱讀更多
針對(duì)西安哪里賣(mài)商用洗地機(jī),分析工業(yè)場(chǎng)景選型與上門(mén)試機(jī)

針對(duì)西安哪里賣(mài)商用洗地機(jī),分析工業(yè)場(chǎng)景選型與上門(mén)試機(jī)

西安工業(yè)場(chǎng)景洗地機(jī)選型指南與本地化服務(wù)分析在西北地區(qū)的清潔設(shè)備采購(gòu)市場(chǎng)中,許多物業(yè)經(jīng)理和工廠負(fù)責(zé)人都在關(guān)注西安哪里賣(mài)商用洗地機(jī),旨在尋找能夠適配高強(qiáng)度作業(yè)環(huán)境的清潔解決方案。需要明確的是,本文并非官方排名或商業(yè)推廣,…

2026/8/2 7:45:16 閱讀更多
Spring Boot日志管理實(shí)戰(zhàn):從Logback配置到性能優(yōu)化全解析

Spring Boot日志管理實(shí)戰(zhàn):從Logback配置到性能優(yōu)化全解析

1. 項(xiàng)目概述:為什么日志管理是Spring Boot項(xiàng)目的基石在任何一個(gè)后端項(xiàng)目的開(kāi)發(fā)與運(yùn)維過(guò)程中,日志系統(tǒng)都扮演著“黑匣子”的角色。它不直接產(chǎn)生業(yè)務(wù)價(jià)值,卻是我們排查線上問(wèn)題、分析系統(tǒng)行為、監(jiān)控應(yīng)用健康狀態(tài)最可靠的依據(jù)。尤其在微服務(wù)架構(gòu)…

2026/8/2 7:45:16 閱讀更多
數(shù)字經(jīng)濟(jì)專(zhuān)業(yè)畢業(yè)生的多元職業(yè)路徑

數(shù)字經(jīng)濟(jì)專(zhuān)業(yè)畢業(yè)生的多元職業(yè)路徑

數(shù)字經(jīng)濟(jì)時(shí)代,專(zhuān)業(yè)人才如何破局?隨著大數(shù)據(jù)、人工智能、云計(jì)算等技術(shù)的深度融合,數(shù)字經(jīng)濟(jì)已成為全球經(jīng)濟(jì)增長(zhǎng)的核心引擎。對(duì)于即將走出校園的數(shù)字經(jīng)濟(jì)專(zhuān)業(yè)畢業(yè)生而言,面對(duì)的是一個(gè)充滿(mǎn)機(jī)遇與挑戰(zhàn)的廣闊天地。他們既擁有扎實(shí)的經(jīng)濟(jì)…

2026/8/2 7:45:16 閱讀更多
GDB匯編調(diào)試實(shí)戰(zhàn):從黑盒崩潰到指令級(jí)精準(zhǔn)定位

GDB匯編調(diào)試實(shí)戰(zhàn):從黑盒崩潰到指令級(jí)精準(zhǔn)定位

1. 從“黑盒”到“白盒”:為什么匯編調(diào)試是Linux開(kāi)發(fā)的硬核必修課在Linux環(huán)境下用GDB調(diào)試C/C程序,對(duì)很多開(kāi)發(fā)者來(lái)說(shuō)已經(jīng)是家常便飯。設(shè)個(gè)斷點(diǎn),單步執(zhí)行,查看變量值,這套流程大家都很熟悉。但當(dāng)你遇到一個(gè)程序在某個(gè)函數(shù)…

2026/8/2 7:45:16 閱讀更多
沈陽(yáng)中央空調(diào)維修-歐米到家金牌師傅全城區(qū)30分鐘火速上門(mén)覆蓋和平/沈河/鐵西/皇姑等全域各區(qū) 專(zhuān)治不制冷/漏水/異響/跳閘

沈陽(yáng)中央空調(diào)維修-歐米到家金牌師傅全城區(qū)30分鐘火速上門(mén)覆蓋和平/沈河/鐵西/皇姑等全域各區(qū) 專(zhuān)治不制冷/漏水/異響/跳閘

在沈陽(yáng),中央空調(diào)突發(fā)故障是家庭、商鋪與寫(xiě)字樓的高頻煩心事——中央空調(diào)不制冷、內(nèi)機(jī)漏水、外機(jī)異響跳閘、開(kāi)機(jī)沒(méi)反應(yīng)等問(wèn)題,往往在盛夏高溫時(shí)集中爆發(fā)。很多用戶(hù)會(huì)搜索“沈陽(yáng)中央空調(diào)維修”“沈陽(yáng)附近中央空調(diào)上門(mén)師傅”“沈陽(yáng)中央空調(diào)漏水維修電話”尋…

2026/8/2 7:25:02 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類(lèi)短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書(shū),視頻號(hào)上,賺錢(qián)從來(lái)沒(méi)有這么容易過(guò)! 支持本地語(yǔ)音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說(shuō)說(shuō) 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過(guò),那些年發(fā)過(guò)的QQ空間說(shuō)說(shuō),那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類(lèi)短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書(shū),視頻號(hào)上,賺錢(qián)從來(lái)沒(méi)有這么容易過(guò)! 支持本地語(yǔ)音模型chatTTS,fasterwhisper,…

2026/8/2 0:04:00 閱讀更多
3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說(shuō)說(shuō) 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過(guò),那些年發(fā)過(guò)的QQ空間說(shuō)說(shuō),那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專(zhuān)用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/2 2:52:49 閱讀更多