映象的構建檔案
通過build
構建成新的映象
如:將myfile
檔案構建成新映象
from centos
cmd echo "**********run success**********="
cmd /bin/bash
docker build -f ./myfile.txt -t lwx/mycentos .
注意:
dockerfile的執行流程
1、docker從基礎映象執行乙個容器
2、執行一條指令並對容器進行修改
3、生成乙個新的映象
4、基於新映象建立乙個新的容器
5、依次執行,直到所有指定都執行完
引用映象,如
from centos
scratch
所有映象的頂層
映象的維護者,可以填加姓名和郵箱等
maintainer lwx is a good boy and email is [email protected]
容器構建時需要執行的命令
如:在使用centos作為父映象時,安裝vim
run yum -y install vim
暴露的埠
expose 6379
建立容器後,終端登入後預設的路徑,沒有指定時預設到/
目錄
workddir /
設定環境變數,可以配合其它命令使用
env work_home /work
workdir $work_home
將所需要的壓縮包拷貝到映象中,copy
只是拷貝,add
拷貝後還會進行解壓縮
如宿主中的jdk拷貝到映象中
add /data/jdk1.8.0-openjdk.tar.gz /usr/local
不做贅述
為映象新增資料卷
volume ["/volume1","/volume2"]
該方式沒有指定宿主機的目錄,所以docker會分配乙個預設的位置,可以通過docker inspect containerid
進行檢視。
兩者都是執行命令
dockerfile可以有多個cmd命令,但只有最後乙個生效,而且會被docker run
後的命令替換
如:完成後開啟終端
cmd /bin/bash
大部分linu發行版的基礎映象裡面呼叫cmd命令, 指定容器啟動後執行/bin/sh或/bin/bash. 這樣映象啟動預設進入互動式的shell
entrypoint
用法與cmd
類似,但是它不會被docker run
後的命令替換,如需替換,則需要加上--entrypoint
的引數。
如:
entrypoint /bin/bash
父映象被子映象繼承後,父映象的onbuild會被觸發,該命令可以配合其他命令使用
如:在子映象執行時,父映象列印一句話
onbuild run echo "father image is running"
from centos
env bash /bin/bash
env location /usr/local/
workdir $location
maintainer author:lwx email:[email protected]
run yum -y install vim
run yum -y install net-tools
expose 80
cmd $bash
Dockerfile檔案說明
此檔案用於docker映象檔案的製作 dockerfile檔案由行命令組成,以 開頭注釋行 一般分為四部分,基礎映象資訊 維護者資訊 映象操作指令和容器啟動執行指令。例如 depending on the operating system of the host machines s that wi...
Dockerfile基礎命令
映象的定製實際上就是定製每一層所新增的配置和檔案。如果可以把每一層修改 安裝 構建 操作的命令都寫入到乙個指令碼,用這個指令碼檔案來構建 定製映象,並且重複利用 映象的構建透明化 體積的優化。那這個指令碼稱之為dockerfile 目前的倉庫映象很難找到乙個滿足專案需求 非常好用的映象,就需要自定義...
DockerFile命令詳解
form 基礎映象,當前新映象是基於哪個映象的,例如我要建立乙個centos的映象,我要拉取父映象 from centos maintainer 映象的作者,一般是姓名 郵箱位址 run 容器構建時執行的命令 expose 暴露新建的映象對外服務的埠號 workdir 建立容器後的工作目錄,如果沒有...