【dockerfile核心命令】
1、from 指定基礎映象構建
寫法:from 指定基礎映象
2、copy 複製命令。從上下文目錄中複製檔案或者目錄到容器裡指定路徑。
寫法:copy 源路徑,目標路徑
copy ["源路徑","目標路徑"]
3、run執行指令。構建的時候執行的指令
主要在於映象構建的時候執行,執行build命令的時候
後面接的命令就是shell輸入的命令
寫法run shell命令 引數1 引數2
run ["shell命令 ","引數1"," 引數2"]
例如:run ["echo",">"," /usr/share/index.html"]
4、cmd執行指令。執行容器時候執行的指令
主要在於映象執行容器的時候生成,執行run的時候執行
寫法cmd ","",...]
例如:cmd ["dotnet","netcore.dll"]
缺點:在run 命令後面可以進行覆蓋
docker run -d -p netcore dotnet netcore.dll 進行覆蓋掉
5、entrypoint執行指令。執行容器時候執行的指令(不會被覆蓋)
寫法entrypoint ["","","",...]
可以和cmd動態結合,設定動態的配置引數
例如 entrypoint ["nginx", "-c"] 定參
cmd ["/etc/nginx/nginx.conf"]變參
6、expose暴露埠指令
僅僅宣告埠,就是指定映象暴露的埠
在run 的時候,通過docker run -p 會自動隨機對映到expose埠
寫法expose 埠
expose 埠
例如 expose 5000
expose 5001
7、workdir工作目錄指令
用於應用在容器內的工作目錄,就好比:netcore目錄
寫法workdir 《工作目錄路徑》
例如workdir /netcore
或者workdir /nginx
安裝 nginx 所需工具 =》apt -y install gcc make pcre-devel zlib-devel tar zlib
nginx 解壓/nginx 目錄 =》tar -zxvf nginx-1.16.1.tar.gz
切換到/nginx/nginx-1.16.1 執行 ./configure , make ,make install =》cd nginx-1.16.1 && ./configure && make && make install
切換到/usr/local/nginx/sbin,執行 ./nginx 啟動nginx =》=》cd /usr/local/nginx/sbin && ./nginx
【配置nginx的dockerfile檔案】
from ubuntu
run apt -y install gcc make pcre-devel zlib-devel tar zlib
workdir /nginx
copy nginx-1.16.1.tar.gz /nginx
run tar -zxvf nginx-1.16.1.tar.gz
run cd nginx-1.16.1 && ./configure && make && make install
expose 80
cmd /bin/bash
successfully built [image-id]
successfully tagged nginx:latest
【啟動 nginx 命令】
指令說明
form
指定基礎映象(from是必備的指令,並且必須為第一條指令)。
run用來執行命令列命令。其基本格式:
shell格式: run 《命令》 ,輸入在bash環境中的命令即可,乙個dockerfile允許使用run不得超過127層,所以,使用一次run, 使用 『 \ 』 換行,使用『 && 』執行下一條命令。一般使用此種格式;
exec格式: run <"可執行檔案", "引數1", "引數2">,此種方式像是函式呼叫中的格式;
copy
複製檔案。 其基本格式:
格式1:copy 《源路徑》...《目標路徑》
格式2:copy [「《源路徑1>」,....."《目標路徑》"]
add更高階的複製檔案,在copy的基礎上增加了一些功能,如果複製的是壓縮包的話,會直接解壓,而不需要在使用run解壓;
cmd容器啟動命令。其基本格式:
shell格式: cmd 《命令》
exec格式: cmd ["可執行檔案", "引數1", "引數2"...]
引數列**式: cmd [「引數1」, 「引數2」...],在指定了entrypoint指令後,用cmd指定具體的引數
entrypoint
入口點。其基本格式分為exec和shell,entrypoint的目的和cmd一樣,都是在指定容器啟動程式及引數。entrypoint在執行中可以替代,不過比cmd繁瑣,需要通過docker run 的引數--entrypoint 來指定。當指定了entrypoint後,cmd的含義就發生了改變,不在是直接執行其命令,而是將cmd的內容作為引數傳遞給entrypoint指令。其執行時就變成了: ""
env設定環境變數。(都可以使用這裡使用的變數)其基本格式:
格式1:env
格式2:env ==...
arg構建引數。構建引數和env的效果一樣,都是設定環境變數,所不同的是arg所構建的環境變數在將來容器執行時是不存在的。其基本格式:
格式1: arg 《引數名》 [=《預設值》]
格式2: 該預設值可以在構建命令 docker build 中用 --build-arg 《引數名》=《值》 來覆蓋
volume
定義匿名卷。 其基本格式:
格式1: volume ["《路徑1>", "《路徑2>"...]
格式2: volume 《路徑》
expose
暴露埠。expose指令是宣告執行時容器所提供的埠,在啟動容器時不會在因為這個宣告而開啟埠。 其基本格式:
格式1: expose 《埠1> [《埠2>...]
workdir
指定工作目錄。其基本格式:
格式1: workdir 《工作目錄路徑》
user
指定當前使用者。user是幫助你切換到指定使用者。 其基本格式:
格式1: user 《使用者名稱》
healtcheck
健康檢查,判斷容器的狀態是否正常。 其基本格式:
格式1: healtcheck [選項] cmd 《命令》 :設定檢查容器健康狀況的命令
格式2: healtcheck none: 如果基礎映象有健康檢查指令,使用此格式可以遮蔽掉其健康檢查指令
DockerFile檔案之詳細介紹
在docker中建立映象最常用的方式,就是使用dockerfile。dockerfile是乙個docker映象的描述檔案,我們可以理解成火箭發射的a b c d 的步驟。dockerfile其內部包含了一條條的指令,每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建。fromnode...
Dockerfile檔案詳解
一 dockerfile檔案 二 配置檔案詳解 1.from centos 我們的docker是基於哪個基礎映象的 我們的工作目錄 3.copy metadata metadata 將本地的專案拷貝到docker內部 4,run命令 在docker內部執行一下命令,可以是安裝軟體,新建資料夾等操作 ...
Dockerfile檔案說明
此檔案用於docker映象檔案的製作 dockerfile檔案由行命令組成,以 開頭注釋行 一般分為四部分,基礎映象資訊 維護者資訊 映象操作指令和容器啟動執行指令。例如 depending on the operating system of the host machines s that wi...