1. gzyueqian
      18529173453

      嵌入式開發(fā):面向嵌入式軟件開發(fā)人員的 Docker 簡介

      更新時(shí)間: 2022-01-13 11:23:32來源: 粵嵌教育瀏覽量:12664

        在過去的幾年里,Docker 席卷了軟件行業(yè)。Docker 為嵌入式開發(fā)人員提供了一個(gè)“用于開發(fā)、發(fā)布和運(yùn)行應(yīng)用程序的開放平臺(tái)”。docker提供的主要優(yōu)勢是,它可以通過在容器中構(gòu)建環(huán)境來將應(yīng)用程序與其運(yùn)行的基礎(chǔ)設(shè)施分開,然后可以在幾乎任何開發(fā)平臺(tái)上執(zhí)行容器,為開發(fā)人員提供相同的環(huán)境。


        在這篇文章中,我們將探討 Docker 以及嵌入式軟件開發(fā)人員如何使用它來改進(jìn)他們的開發(fā)環(huán)境。


        Docker 在嵌入式軟件開發(fā)中的使用


        開發(fā)人員可以將 Docker 用于多種用途,但嵌入式軟件開發(fā)人員最感興趣的有兩個(gè)。


        首先,開發(fā)人員可以使用他們的構(gòu)建環(huán)境構(gòu)建一個(gè)可移植的容器。這可確保每個(gè)開發(fā)人員都使用相同的工具和開發(fā)環(huán)境。新開發(fā)人員可以通過為他們提供對源代碼和用于構(gòu)建 Docker 映像的相關(guān) Docker 文件的訪問權(quán)限,幾乎立即啟動(dòng)并運(yùn)行。這可以緩解所有關(guān)于軟件未構(gòu)建、擁有正確的庫、路徑等的問題和討論。


        其次,開發(fā)人員可以構(gòu)建一個(gè) DevOps 管道,利用他們的容器來自動(dòng)化構(gòu)建、測試、分析和部署。自動(dòng)化 DevOps 是一個(gè)非常強(qiáng)大的概念,對于成功使用它們的任何企業(yè)都非常有價(jià)值。大多數(shù)管道開發(fā)需要一些安裝了構(gòu)建和測試環(huán)境的虛擬機(jī)或容器。嵌入式開發(fā)人員可以利用 Docker 創(chuàng)建這個(gè)環(huán)境,并使用 Jenkins 和 Gitlab 等工具來構(gòu)建他們的 DevOps 系統(tǒng)。


        Dockerfile 基礎(chǔ)知識(shí)


        Docker 容器由 Docker 文件構(gòu)建,通常稱為 Dockerfile,它是一個(gè)文本文件,包含構(gòu)建 Docker 容器所需的所有命令。 例如,許多 Dockerfile 將以 FROM 命令開始,該命令指定構(gòu)建 Dockerfile 的現(xiàn)有 docker 映像。有不同的選項(xiàng),例如:


        它使用最新的 Ubuntu 映像作為基礎(chǔ),使用 gcc 的人可能會(huì)使用類似的東西:


        FROM gcc:11.2.0


        它使用特定版本的 gcc。(也可以使用 FROM gcc:latest)。


        另一個(gè)常用命令是 WORKDIR。 這指定了可能出現(xiàn)的任何命令(如 RUN、CMD、ADD、COPY、ENTRYPOINT)的工作目錄。


        一個(gè) Docker 文件將包含設(shè)置開發(fā)環(huán)境所需的盡可能多的命令。但是,文件本身并不是 Docker 容器。要使用容器,我們需要先構(gòu)建它。



        構(gòu)建 Docker 容器


        一旦 Docker 文件包含構(gòu)建映像所需的所有命令,就可以通過發(fā)出如下構(gòu)建命令來構(gòu)建映像:


        ## 構(gòu)建docker映像


        image:


        docker build -t beningo/gcc-arm .


        在上述命令中,調(diào)用 docker 來構(gòu)建當(dāng)前目錄中存在的 Dockerfile。 -t 是標(biāo)簽參數(shù)。 在這種情況下,我將新創(chuàng)建的圖像標(biāo)記為 beningo/gcc-arm。 例如,如果我運(yùn)行命令:


        docker images


        我應(yīng)該會(huì)收到我創(chuàng)建的所有 Docker 映像的列表:



        標(biāo)簽幫助我們識(shí)別映像。如您所見,我有一張我沒有標(biāo)記的映像。了解映像是什么很有幫助。由于映像很容易達(dá)到 2 GB,因此如果有人不小心,它們會(huì)很快占用大量硬盤空間!


        運(yùn)行 Docker 映像


        構(gòu)建 Docker 容器后,我們要運(yùn)行映像。 我們可以使用 docker run 命令在映像中運(yùn)行命令,也可以使用 -it 以交互方式與映像交互,這將允許我們通過終端界面訪問我們正在運(yùn)行的映像。運(yùn)行 docker 映像的常用命令如下所示:


        docker run –rm -it beningo/gcc-arm


        –rm 告訴 Docker 我們要在退出卷時(shí)刪除它。如果我想訪問本地目錄中的源代碼,我還可以使用如下命令:


        docker run –rm -it -v “$(PWD):/home/app” beningo/gcc-arm


        如果我運(yùn)行此命令然后導(dǎo)航到 /home/app 文件夾,我們可以看到我可以訪問我的代碼存儲(chǔ)庫:



        然后我可以通過在終端中輸入 EXIT 來退出我的容器。 如果我不想退出,我可以繼續(xù)構(gòu)建我的源代碼或執(zhí)行我的容器可能具有的任何其他功能。


        結(jié)論


        對于希望簡化構(gòu)建環(huán)境和構(gòu)建 DevOps 流程的嵌入式團(tuán)隊(duì)來說,Docker 是一個(gè)有用的工具,Docker 在概念上很簡單,很容易上手。某些細(xì)節(jié)可能很棘手,但可以很容易地解決它們,從而為嵌入式開發(fā)人員提供更大的靈活性并幫助他們改進(jìn)流程。

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日本公妇被公侵犯中文字幕 | 亚洲综合天堂婷婷六月丁香 | 亚洲国内自拍中文 | 天堂mv亚洲mv在线播放 | 久久99国产精品婷婷99 | 婷婷色五月欧洲图片 |