Docker系列之Dockerfile解讀

2021-10-17 08:46:31 字數 2050 閱讀 8075

1.1 概念:

dockerfile是乙個包含用於組合映象命令的文字文件,docker通過讀取dockerfile中指令自動生成映象。

1.2 基本結構

* 基礎映象資訊

* 維護者資訊

* 映象操作指令

* 容器啟動時執行的命令

1.3 說明

* docker以從上到下的順序執行dockerfile指令

* 為了指定基本映象,第一條指令必須為from

* 乙個宣告以#開頭,被視為注釋

* 可以使用run、cmd、from、expose、env、extrypoint等指令

2.1 from

描述:

指定基礎映象,後序的指令都依賴於該指令指定的image,必須為第乙個指令。

格式: from

from :

示例:

from mysql:8.0

注意: * tag是可選的,如果不加該引數會使用latest版本的基礎映象

* 基礎映象裡包含一些基礎環境,例如:jdk、skywalking等

2.2 maintainer

描述:

維護者資訊

格式: maintiner

示例: maintiner gxn

2.3 run

描述:

構建映象時執行的命令

shell執行:

格式:run

示例:run mkdir -p /wy/youzanyun

2.4 workdir

描述:

進入工作目錄,類似於cd命令

格式: workdir /path

示例: workdir /wy/youzanyun

2.4 expose

描述:

指定與外界互動的埠

格式: expose

[...]

示例: expose 80

expose 80 443

注意: expose並不會讓容器的埠訪問到主機,要訪問的話需要在docker run執行

容器時通過-p來發布這些埠

2.5 add

描述:

將本地檔案新增到容器中,tar型別的檔案會自動解壓,可以訪問網路資源,類似

wget。

格式: add

...

示例:

2.6 copy

描述:

功能類似於add,但是不會自動解壓檔案,不能訪問網路。

2.7 env

描述:

設定環境變數

格式: env

# 設定乙個變數,key之後所有的內容均被視為value的組成部分

env =

...

# 可以設定多個變數

示例:

2.8 entrypoint

描述:

格式: entrypoint command param1 param2

示例:注意:

* docker run 執行命令的時候不會覆蓋entrypoint,而docker run命令

中指定的任何引數,都會被當成引數再次傳遞給entrypoint。

* dockerfile只允許有乙個entrypoint命令,多指定時會覆蓋前面的設定,

而只執行最後的entrypoint指令。

二 docker系列之docker安裝

docker的安裝和使用有一些前提條件,主要體現在體系架構和核心的支援上。對於體系架構,除了docker一開始就支援的x86 64,其他體系架構的支援則一直在不斷地完善和推進中。docker分為ce和ee兩大版本。ce即社群版 免費,支援週期7個月 ee即企業版,強調安全,付費使用,支援週期24個月...

四 docker系列之docker安裝常用軟體

目錄 docker安裝常用軟體 docker安裝執行redis 一 dockerhup redis倉庫 二 映象拉取 三 映象啟動 四 引數解析 docker安裝執行mysql 一 拉取映象 二 執行映象 docker部署執行單機kafka 拉取zookeeper並執行 拉取kafka映象並執行 命...

Docker系列 docker安裝

docker的安裝和使用有一些前提條件,主要體現在體系架構和核心的支援上。對於體系架構,除了docker一開始就支援的x86 64,其他體系架構的支援則一直在不斷地完善和推進中。docker分為ce和ee兩大版本。ce即社群版 免費,支援週期7個月 ee即企業版,強調安全,付費使用,支援週期24個月...