Dockerfile语法
Dockerfile 語法示例
Dockerfile語法由兩部分構(gòu)成,注釋和命令+參數(shù)
- # Line blocks used for commenting
- command argument argument ..
一個簡單的例子:
- # Print "Hello docker!"
- RUN echo "Hello docker!"
Dockerfile 命令
Dockerfile有十幾條命令可用于構(gòu)建鏡像,下文將簡略介紹這些命令。
ADD
ADD命令有兩個參數(shù),源和目標(biāo)。它的基本作用是從源系統(tǒng)的文件系統(tǒng)上復(fù)制文件到目標(biāo)容器的文件系統(tǒng)。如果源是一個URL,那該URL的內(nèi)容將被下載并復(fù)制到容器中。
CMD
和RUN命令相似,CMD可以用于執(zhí)行特定的命令。和RUN不同的是,這些命令不是在鏡像構(gòu)建的過程中執(zhí)行的,而是在用鏡像構(gòu)建容器后被調(diào)用。
ENTRYPOINT
配置容器啟動后執(zhí)行的命令,并且不可被?docker?run?提供的參數(shù)覆蓋。
每個?Dockerfile?中只能有一個?ENTRYPOINT,當(dāng)指定多個時,只有最后一個起效。
ENTRYPOINT 幫助你配置一個容器使之可執(zhí)行化,如果你結(jié)合CMD命令和ENTRYPOINT命令,你可以從CMD命令中移除“application”而僅僅保留參數(shù),參數(shù)將傳遞給ENTRYPOINT命令。
ENV
ENV命令用于設(shè)置環(huán)境變量。這些變量以”key=value”的形式存在,并可以在容器內(nèi)被腳本或者程序調(diào)用。這個機(jī)制給在容器中運(yùn)行應(yīng)用帶來了極大的便利。
EXPOSE
FROM命令可能是最重要的Dockerfile命令。改命令定義了使用哪個基礎(chǔ)鏡像啟動構(gòu)建流程。基礎(chǔ)鏡像可以為任意鏡 像。如果基礎(chǔ)鏡像沒有被發(fā)現(xiàn),Docker將試圖從Docker image index來查找該鏡像。FROM命令必須是Dockerfile的首個命令
MAINTAINER
我建議這個命令放在Dockerfile的起始部分,雖然理論上它可以放置于Dockerfile的任意位置。這個命令用于聲明作者,并應(yīng)該放在FROM的后面。
RUN
RUN命令是Dockerfile執(zhí)行命令的核心部分。它接受命令作為參數(shù)并用于創(chuàng)建鏡像。不像CMD命令,RUN命令用于創(chuàng)建鏡像(在之前commit的層之上形成新的層)。
USER
USER命令用于設(shè)置運(yùn)行容器的UID。
VOLUME
VOLUME命令用于讓你的容器訪問宿主機(jī)上的目錄。
WORKDIR
WORKDIR命令用于設(shè)置CMD指明的命令的運(yùn)行目錄。
如何構(gòu)建一個docker鏡像
使用Dockerfiles和手工使用Docker Daemon運(yùn)行命令一樣簡單。腳本運(yùn)行后輸出為新的鏡像ID
sudo docker build -t my_mongodb .實(shí)例創(chuàng)建一個nginx鏡像
運(yùn)用FROM命令和MAINTAINER命令
安裝nginx
安裝Nginx后,我們需要配置Nginx并且替換掉默認(rèn)的配置文件
替換的配置文件內(nèi)容
worker_processes 1;events { worker_connections 1024; }http {sendfile on;server {listen 80;location / {proxy_pass http://httpstat.us/;proxy_set_header X-Real-IP $remote_addr;}}}?
?
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/xzkzzz/p/9906547.html
總結(jié)
以上是生活随笔為你收集整理的Dockerfile语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 油田 (Oil Deposits UVA
- 下一篇: python alpha量化交易软件_2