Dockerfile入門:構(gòu)建鏡像的完整指南
目錄一、dockerfile簡介什么是dockerfiledockerfile是什么為什么要用dockerfileDockerfile、Docker鏡像和Docker容器的關(guān)系二、DockerFile需要注意的編寫規(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)建鏡像六、【實戰(zhàn)】docker自定義鏡像1、編寫Dockerfile2、構(gòu)建鏡像3、查看鏡像七、總結(jié)相關(guān)文章一、dockerfile簡介什么是dockerfileDockerfile 是一個用來構(gòu)建鏡像的文本文件文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令(Instruction)和操作命令;每一條指令構(gòu)建一層鏡像因此每一條指令的內(nèi)容就是描述該層鏡像應(yīng)當如何構(gòu)建也就是你要執(zhí)行的操作命令。dockerfile是什么dockerfile是純文本文件dockerfile是用來構(gòu)建鏡像的dockerfile 用于指示 docker image build 命令自動構(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 要打的鏡像名:版本號/spanspan stylecolor:#98c379 Dockerfile路徑/span/code/span/spandockerfile構(gòu)建鏡像的的實例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)能滿足我們99的服務(wù)了,為什么還需要自定義鏡像?解析是官方的鏡像很多同時也可以滿足我們99的服務(wù)但是如果有的公司要做自己的產(chǎn)品那么官網(wǎng)的鏡像肯定是沒有的這時候就需要用到自定義鏡像而自定義鏡像就是dockerfile構(gòu)建成的我們可以用dockerfile自定義寫需要的操作來用dockerfile的指令來實現(xiàn)最終采用docker build來構(gòu)建鏡像構(gòu)建完鏡像可以采用docker save命令打成tar包以便于日后在其他服務(wù)器上使用也可以采用docker push提交到私有鏡像倉庫或dockerhub中。如上圖所示Dockerfile是獨立于本地docker實例的一個文本文件用于自動化地構(gòu)建具有特定功能的docker鏡像。Dockerfile鏡像構(gòu)建三部曲1構(gòu)建Dockerfile文件2采用docker build命令構(gòu)建鏡像3采用docker run命令依據(jù)鏡像運行容器實例。Dockerfile、Docker鏡像和Docker容器的關(guān)系從應(yīng)用軟件開發(fā)角度來看它們分別表示軟件開發(fā)的三個階段1Dockerfile是軟件開發(fā)的原材料2Docker鏡像是軟件的交付品3Docker容器是Docker交付鏡像的實例化代表軟件的實際運行過程。總結(jié)Dockerfile面向開發(fā)Docker鏡像為交付標準Docker容器與部署、運維相關(guān)三則相輔相成缺一不可他們是Docker的三大基石。Docker在實際運行中Dockerfile、Docker鏡像、Docker容器三者的運作內(nèi)容如下所示1、Dockerfile定義了進程需要的一切內(nèi)容包括代碼執(zhí)行、文件/環(huán)境變量、依賴包、運行環(huán)境、操作系統(tǒng)發(fā)行版本、服務(wù)進程、內(nèi)核進程等等很多與操作系統(tǒng)底層相關(guān)的內(nèi)容。2、通過docker build指令會生成一個Docker鏡像它是為用戶提供各種服務(wù)的基礎(chǔ)3、Docker容器則是一個實例化的服務(wù)進程。二、DockerFile需要注意的編寫規(guī)范1. # 代表注釋2.指令必須要大寫后面最少需要帶一個參數(shù)最多無限制;3.執(zhí)行dockerfile的時候指令是按照從上到下的順序執(zhí)行的三、Docekrfile指令解析注意指令全部都必須為大寫后面跟的是你要執(zhí)行的操作命令指令功能簡介FROM指定構(gòu)建新image是使用的基礎(chǔ)image通常必須是Dockerfile的第一個有效指令定義一個基礎(chǔ)鏡像。LABEL附加到image之上的元數(shù)據(jù)鍵值格式定義一些元數(shù)據(jù)。ENV以鍵值格式設(shè)定環(huán)境變量可被其后的指令所調(diào)用且基于新生成的image運行的Container中也會存在這些變量。RUN以FROM中定義的image為基礎(chǔ)環(huán)境運行指令命令生成結(jié)果將作為新image的一個鏡像層并可由后續(xù)指令所使用。RUN后跟要執(zhí)行的命令。CMD基于dockerfile生成的image運行的container時CMD能夠指定容器中默認運行的程序因而其只應(yīng)該定義一次。ENTRYPOINT類似于CMD指令的功能但不能被命令行指定要運行的應(yīng)用程序覆蓋且與CMD共存時CMD的內(nèi)容將作為該指令中定義的程序的參數(shù)。WORKDIR相當于cd切換目錄的命令如果切換的那個地方?jīng)]有哪個目錄則會自動創(chuàng)建一個目錄。COPY相當于cp命令復制主機上或者前一階段構(gòu)建結(jié)果中需要使用--from選項文件或目錄生成新的鏡像。ADD與COPY指令的功能相似但ADD傳輸壓縮包的時候是可以解壓的。VOLUME指定基于新生成的Image運行Container時期望作為volume使用的目錄。EXPOSE指定基于新生成的lmage運行Container時期望 暴露的端口但實際暴露與否取決于docker run”命令的選項支持TCP和UDP協(xié)議。USER為Dockerfile中該指令后面的RUN、CMD和ENTRYPOING指令中要運行的應(yīng)用程序指定運行者身份UID以及一個可選的GID。ARG定義專用于build過程中的變量但僅對該指標之后的調(diào)用生效其值可由命令行選項--build-arg進行傳遞。ONBUILD觸發(fā)器生效于由該Dockerfile 構(gòu)建出的新l/mage被用于另一個Dockerfile中的FROM指令作為基礎(chǔ)鏡像時。STOPSIGNAL用于通知Container終止的系統(tǒng)調(diào)用信號。HEALTHCHECK定義檢測容器應(yīng)用的健康狀態(tài)的具體方法。SHELL為容器定義運行時使用的默認shel程序Linux系統(tǒng)默認使用 [/bin/sh”-c], Windows默認使用 [’cmd, /S,/C]。四、常用的Dockerfile指令詳解、格式與用法必須是寫dockerfile必須有的沒有加的是可選的。4.1 FROM必須指定一個基礎(chǔ)鏡像必須為第一個命令。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefFROM/spanspan stylecolor:#98c379 基礎(chǔ)鏡像/span/code/span/span舉例一個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維護者信息可以寫郵箱編輯人等等。格式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指定運行容器時的用戶名或 UID后續(xù)的 RUN 也會使用指定用戶。使用USER指定用戶時可以使用用戶名、UID或GID或是兩者的組合。當服務(wù)不需要管理員權(quán)限時可以通過該命令指定運行用戶。并且可以在之前創(chuàng)建所需要的用戶格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefUSER/spanspan stylecolor:#98c379 用戶名/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用戶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指令是聲明運行時容器提供服務(wù)端口這只是一個聲明在運行時并不會因為這個聲明應(yīng)該就會開啟這個端口的服務(wù)。在Dockerfile中寫入這樣的聲明有兩個好處是幫助鏡像使用者理解這個鏡像服務(wù)的守護端口以方便配置映射在運行是使隨機端口映射時也就是docker run -P(大寫)時會自動隨機映射EXPOSE端口。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefEXPOSE/spanspan stylecolor:#98c379 端口號/span/code/span/span舉例設(shè)置一個8080端口span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefEXPOSE/spanspan stylecolor:#d19a66 8080/span/code/span/span4.7 COPY復制文件相當于linux命令中的cp命令功能類似ADD但是是不會自動解壓文件也不能訪問網(wǎng)絡(luò)資源格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefCOPY/spanspan stylecolor:#98c379 源文件及路徑/spanspan stylecolor:#98c379 目標路徑/span/code/span/span舉例復制一個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類型文件會自動解壓(網(wǎng)絡(luò)壓縮資源不會被解壓)可以訪問網(wǎng)絡(luò)資源類似wget。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefADD/spanspan stylecolor:#98c379 源文件及路徑/spanspan stylecolor:#98c379 目標路徑/span/code/span/span舉例移動一個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切換目錄相當于linux命令中的cd命令切換到這個目錄進入容器時就是這個目錄所以workdir就屬于啟動默認的目錄。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefWORKDIR/spanspan stylecolor:#98c379 目錄名/span/code/span/span舉例設(shè)置啟動就在/data/目錄span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefWORKDIR/spanspan stylecolor:#98c379 /data//span/code/span/span4.10 RUN必須構(gòu)建鏡像時執(zhí)行的命令執(zhí)行的命令就是你指定的要他干什么使用linux命令就可以。格式span stylebackground-color:#282c34span stylecolor:#abb2bfcode classlanguage-bashspan stylecolor:#61afefRUN/spanspan stylecolor:#98c379 要執(zhí)行的命令/span/code/span/span舉例打鏡像時下載一個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)用也就是在容器啟動時才進行調(diào)用。寫一次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打完鏡像要刪除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 要打的鏡像名:版本號/spanspan stylecolor:#98c379 Dockerfile路徑/span/code/span/spandockerfile構(gòu)建鏡像的的實例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六、【實戰(zhàn)】docker自定義鏡像說明此處只是測試使用并不能用到生產(chǎn)中生產(chǎn)中要根據(jù)自己的情況來寫可以構(gòu)建成鏡像也可以創(chuàng)建容器可以進入容器查看這些文件但是web頁面訪問不到因為沒有加入jar包之類的可以自行放入一個jar包端口設(shè)置3000然后啟動jar包就可以了去訪問web頁面了。前言有一點特別重要構(gòu)建鏡像的時候要看好你的文件是不是這個目錄要不然打到一半會報錯說找不到文件切記要記得放文件在放文件的目錄執(zhí)行。1、編寫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#維護者信息/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#指定運行時的用戶以及鏡像的實際用戶/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#開放一個3000端口/em/span span stylecolor:#61afefEXPOSE/spanspan stylecolor:#d19a66 3000/span span stylecolor:#7f848eem#移動并解壓Grafana.tar安裝包/em/span span stylecolor:#61afefADD/spanspan stylecolor:#98c379 /root/Grafana.tar/spanspan stylecolor:#98c379 /home//span span stylecolor:#7f848eem#復制當前目錄下的所有到/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開源LLMOps平臺:高效構(gòu)建AI應(yīng)用的實踐指南

Dify開源LLMOps平臺:高效構(gòu)建AI應(yīng)用的實踐指南

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

2026/7/31 1:24:50 閱讀更多
rom和ram的區(qū)別是什么

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

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

2026/7/31 1:24:50 閱讀更多
學習嵌入式的第10天

學習嵌入式的第10天

1. 函數(shù)傳參函數(shù)傳參就是:主函數(shù)把“數(shù)據(jù)”丟給子函數(shù)干活。 數(shù)組傳參傳的是地址,子函數(shù)改數(shù)組,主函數(shù)數(shù)組直接變,相當于共用一塊地盤。 普通變量傳參傳的是復印件,子函數(shù)隨便改,主函數(shù)原版不動。void函數(shù)&…

2026/7/31 2:44:53 閱讀更多
2026年,解讀矩陣供應(yīng)商聲譽背后的秘密與行業(yè)變革真相

2026年,解讀矩陣供應(yīng)商聲譽背后的秘密與行業(yè)變革真相

當你走進任何一個現(xiàn)代化的指揮中心、調(diào)度大廳或安防監(jiān)控室,那塊巨大的、顯示著無數(shù)關(guān)鍵信息的屏幕墻,無疑是整個空間最核心的“大腦”。而驅(qū)動這個“大腦”高效運轉(zhuǎn)的“心臟”究竟是什么?答案是:視頻解碼矩陣。這個聽起來有些專業(yè)…

2026/7/31 2:44:53 閱讀更多
當工業(yè) AI 遇上 LLM Agent:RAG、MCP 與多 Agent 如何進入生產(chǎn)現(xiàn)場

當工業(yè) AI 遇上 LLM Agent:RAG、MCP 與多 Agent 如何進入生產(chǎn)現(xiàn)場

LLM 應(yīng)該加在工業(yè)系統(tǒng)的哪一層? 工業(yè)系統(tǒng)最怕的不是模型不夠聰明,而是把不確定性放錯位置。PLC、SIS、SCADA、MES 和專用算法承擔的是確定性控制、實時響應(yīng)與穩(wěn)定運行;LLM 更適合進入它們之上的語義、認知與協(xié)同層:理解人的問題&…

2026/7/31 2:44:53 閱讀更多
Verilog延遲語句深度解析:從仿真原理到工程實踐

Verilog延遲語句深度解析:從仿真原理到工程實踐

1. 項目概述:Verilog延遲語句的深度解析在數(shù)字電路設(shè)計和硬件描述語言(HDL)的實踐中,Verilog的延遲語句是一個既基礎(chǔ)又充滿陷阱的概念。很多剛接觸FPGA或ASIC設(shè)計的朋友,包括我自己在早期項目里,都曾對#5這…

2026/7/31 2:44:53 閱讀更多
大數(shù)據(jù)競賽實戰(zhàn)指南:MySQL、Python、Tableau全流程解析

大數(shù)據(jù)競賽實戰(zhàn)指南:MySQL、Python、Tableau全流程解析

1. 賽項核心解讀:從“做題”到“解決真實業(yè)務(wù)問題”的思維躍遷看到“大數(shù)據(jù)應(yīng)用與服務(wù)”這個賽項名稱,很多同學的第一反應(yīng)可能是:又要寫SQL、又要調(diào)Python、還得搞Tableau可視化,一堆工具堆在一起,頭都大了。我當年帶學…

2026/7/31 2:34:52 閱讀更多
HART協(xié)議詳解:05 HART現(xiàn)場通信實戰(zhàn)

HART協(xié)議詳解:05 HART現(xiàn)場通信實戰(zhàn)

第五季 HART現(xiàn)場通信實戰(zhàn) ——從USB-HART Modem抓包到工程診斷:讓協(xié)議知識變成維修能力 各位工業(yè)現(xiàn)場的工程師朋友們,大家好! 經(jīng)過前四季的系統(tǒng)學習,我們已經(jīng)構(gòu)建了HART協(xié)議的完整理論框架: 第一季:六層生命模型與本質(zhì)認知 第二季:物理層4–20mA與FSK魔法 第三季:數(shù)…

2026/7/31 0:14:40 閱讀更多
維修工程師的示波器實戰(zhàn):02 探頭地線——示波器最大的“坑”

維修工程師的示波器實戰(zhàn):02 探頭地線——示波器最大的“坑”

第二篇:探頭地線——示波器最大的“坑” ——那根不起眼的小地線,可能比你測的信號還重要 很多工程師第一次用示波器時,都會經(jīng)歷這樣一個“驚魂”時刻。 某食品廠包裝線,伺服偶發(fā)報警。年輕工程師判斷是編碼器信號受干擾,便拿出示波器認真測量。波形一出來,所有人都倒…

2026/7/31 0:14:40 閱讀更多