91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Dockerfile怎么構建一個Docker鏡像

發布時間:2021-02-19 14:29:21 來源:億速云 閱讀:178 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關使用Dockerfile怎么構建一個Docker鏡像,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Dockerfile是一個文本文件,其內包含了一條條的指令(Instruction),每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建.

Dockerfile支持Shell類的行尾添加"\"的命令換行方式,以及行首"#"進行注釋的格式.

使用Dockerfile構建Docker鏡像時注意事項:

(1).盡量選取滿足需求但較小的基礎系統鏡像;

(2).清理編譯生成文件、安裝包的緩存等臨時文件;

(3).安裝各個軟件時候要指定準確的版本號,并避免引入不需要的依賴;

(4).添加.dockerignore文件或使用干凈的工作目錄.

Dockerfile常用指令:

(1).FROM:用于指定要構建的鏡像的基礎鏡像,它通常是Dockerfile中的第一條指令;

(2).LABEL:用于添加標簽來幫助組織鏡像、記錄許可信息、輔助自動化構建等,標簽是鍵值對,以字符串存儲;

(3).RUN:用于在鏡像中執行命令,這會創建新的鏡像層,每個RUN指令創建一個新的鏡像層,永遠將apt-get update和apt-get install組合成一條RUN;

RUN指令有兩種格式:

A.shell格式:RUN <命令>,就像直接在命令行中輸入的命令一樣;

B.exec格式:RUN ["可執行文件", "參數1", "參數2"];

(4).COPY:支持簡單將本地文件拷貝到容器中,通常使用COPY指令將應用代碼賦值到鏡像中;

(5).EXPOSE:用于記錄應用所使用的網絡端口;

(6).ENTRYPOINT:用于指定鏡像以容器方式啟動后默認運行的程序;

(7).ENV:為容器中安裝的程序更新PATH環境變量.

下面的Dockerfile用于在容器中可以直接編譯執行https://github.com/fengbingchun/Messy_Test:

FROM ubuntu:16.04
LABEL maintainer="FengBingchun fengbingchun@163.com" \ 
   version="1.0" \
   description="dockerfile test"
RUN dep_items='git cmake g++-5' \
  && apt-get update \
  && apt-get install -y $dep_items \ 
  && ln -s /usr/bin/g++-5 /usr/bin/g++ \
  && rm -rf /var/lib/apt/lists/*

構建鏡像,執行以下命令后會成功生成名字為fengbingchun/ubuntu:16.04的鏡像:

docker build -t fengbingchun/ubuntu:16.04 .

通過掛載主機目錄,新建容器test,執行以下命令:

docker run -it -P --name test --mount type=bind,source=e:\GitCode\docker,target=/home/fengbingchun fengbingchun/ubuntu:16.04 /bin/bash

然后,在容器內,cd到/home/fengbingchun目錄下,clone Messy_Test執行以下命令:

git clone https://github.com/fengbingchun/Messy_Test

然后cd到cd Messy_Test/prj/linux_cmake_CppBaseTest目錄下,依次執行如下命令

./build.sh
./build/CppBaseTest

執行結果如下圖所示,說明通過Dockerfile構建的鏡像可以正常編譯執行Messy_Test:

使用Dockerfile怎么構建一個Docker鏡像

保存鏡像fengbingchun/ubuntu:16.04到tar包,執行以下命令:

docker save -o ubuntu_16.04.tar fengbingchun/ubuntu:16.04

將ubuntu_16.04.tar拷貝到ubuntu系統下,從tar包加載一個鏡像,執行以下命令:

docker load -i ubuntu_16.04.tar

然后執行windows上類似的操作,在新創建的容器test中編譯、執行Messy_Test,依次執行如下命令:

docker run -it -P --name test --mount type=bind,source=/home/xxxx/Disk/GitHub/docker,target=/home/fengbingchun fengbingchun/ubuntu:16.04 /bin/bash
cd /home/fengbingchun/
git clone https://github.com/fengbingchun/Messy_Test
cd Messy_Test/prj/linux_cmake_CppBaseTest/
./build.sh
./build/CppBaseTest

執行結果如下圖所示:說明在Windows上生成的鏡像打包后,在Ubuntu上load后可正常使用.

使用Dockerfile怎么構建一個Docker鏡像

關于使用Dockerfile怎么構建一個Docker鏡像就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

萨嘎县| 修水县| 临汾市| 磴口县| 西丰县| 武冈市| 正镶白旗| 通化市| 温宿县| 汨罗市| 容城县| 武宣县| 阿尔山市| 闽清县| 余干县| 平乡县| 潜山县| 郁南县| 鱼台县| 曲麻莱县| 西青区| 木兰县| 饶河县| 北海市| 金乡县| 铁岭市| 怀安县| 盐边县| 苏尼特左旗| 浠水县| 凤城市| 甘孜县| 山阳县| 东明县| 台东县| 滁州市| 札达县| 承德市| 郯城县| 屯昌县| 阳原县|