Docker入門之 Dockerfile相關操作

2021-10-01 05:59:51 字數 1910 閱讀 5182

先回顧一下通過 dockerfile 構建映象的過程:

包括 dockerfile 在內的任何指令碼和程式都會出錯。有錯並不可怕,但必須有辦法排查;

來看乙個除錯的例子,dockerfile 內容如下:

第一步:準備dockerfile檔案

第二步:執行docker build命令:

命令如下所示:

docker build -t image-debug .
具體結果如下所示: 

可以看到,dockerfile 在執行第三步 run 指令時失敗,我們可以利用第二步建立的映象 be460bb201e1進行除錯,方式是通過docker run -it啟動映象的乙個容器;

命令如下所示:

docker run -it  be460bb201e1
具體結果如下所示:

from指定 base 映象

maintainer設定映象的作者,可以是任意字串

copy將檔案從 build context 複製到映象,注意copy 支援兩種形式:copy src dest或者copy ["src", "dest"]

注意:src 只能指定 build context 中的檔案或目錄。

add與 copy 類似,從 build context 複製檔案到映象;

env設定環境變數,環境變數可被後面的指令使用;

expose指定容器中的程序會監聽某個埠,docker 可以將該埠暴露出來;

volume將檔案或目錄宣告為 volume

workdir為後面的 run, cmd, entrypoint, add 或 copy 指令設定映象中的當前工作目錄

run在容器中執行指定的命令

cmd容器啟動時執行指定的命令,dockerfile 中可以有多個 cmd 指令,但只有最後乙個生效;

entrypoint設定容器啟動時執行的命令。dockerfile 中可以有多個 entrypoint 指令,但只有最後乙個生效;

再舉乙個例子來練習一下dockerfile:

第一步,準備dockerfile檔案

第二步:執行命令:

docker build -t my-image .
具體結果如下:

說明:build context說白了,就是dockerfile所在的目錄以及子目錄;

最佳實踐

run 執行命令並建立新的映象層,run 經常用於安裝軟體包;

cmd 設定容器啟動後預設執行的命令及其引數,但 cmd 能夠被docker run後面跟的命令列引數替換;

entrypoint 配置容器啟動時執行的命令

Docker 入門之docker容器建立

使用docker容器的大多數人都是因為想要隔離不同執行環境的差異,使得自己的應用能更好的移植和部署。那麼我們來看看掌握docker需要掌握哪些方面。1,搭建docker環境 2,編譯映象並將其執行成容器 3,將自己的應用壓縮在多個容器中 4,在乙個集群上部署自己的應用 5,通過增加後台資料庫來儲存服...

Docker基礎入門實戰之Docker安裝

虛擬化技術是乙個通用的概念,在不同的領域存在不同的理解,在計算機領域,一般指計算機虛擬化或伺服器虛擬化。虛擬化是一種資源管理技術,可以抽象計算機的各種實體資源,如伺服器 網路 記憶體及儲存等,打破結構之間的未切割障礙,允許使用者更好的應用這些資源。虛擬化包含硬體虛擬化 作業系統虛擬化等。其中,硬體虛...

Docker技術入門之 Docker安裝 1

docker從1.13版本之後採用時間線的方式作為版本號,分為社群版ce和企業版ee。社群版是免費提供給個人開發者和小型團體使用的,企業版會提供額外的收費服務,比如經過官方測試認證過的基礎設施 容器 外掛程式等。社群版按照stable和edge兩種方式發布,每個季度更新stable版本,如17.06...