from
labelfrom scratch #製作base image
from centos #使用base image
from ubuntu:14.04
定義容器的metadata
runlabel maintainer="hello@mail.com"
label version="1.0"
label description="this is description"
執行一些命令,每呼叫run一次,就會增加一層分層,為了避免無用分層,合併多條命令成一行
workdirrun yun update && yun install -y vim \
python-dev #\換行
設定當前工作目錄
用workdir,不要用run cd ,盡量使用絕對目錄workdir /test
workdir demo
run pwd #輸出/test/demo
add and copy
把本地檔案新增到image裡
大部分情況,copy優於add,add除了copy還有解壓功能,新增遠端檔案/目錄使用curl或wgetadd hello /
add test.tar.gz / #新增到根目錄並解壓
workdir /root
add hello test/ # /root/test/hello
workdir /root
copy hello test/
env設定環境變數,常量
run & cmd & entrypointenv mysql_version 5.6
run apt-get install -y mysql-server="$"\
&& rm -rf /var/lib/apt/list/*
run : 執行命令並建立新的image layer
cmd : 設定容器啟動後預設執行的命令和引數,如果docker run指定了其他命令,cmd 命令會被忽略,如果定義了多個cmd,只有最後乙個會執行
entrypoint : 設定容器啟動時執行的命令,讓應用程式或者服務的形式執行,不會被忽略,一定會執行
expose
暴露埠號
expose 5000 #暴露5000埠
volume
資料持久化
volume "/var/lib/mysql" #將容器中/var/lib/mysql路徑下的檔案持久化到本地主機
還有另一件只有-v引數能夠做到而dockerfile是做不到的事情就是在容器上掛載指定的主機目錄
$ docker run -v /home/adrian/data:/data debian ls /data
該命令將掛載主機的/home/adrian/data目錄到容器內的/data目錄上。任何在/home/adrian/data目錄的檔案都將會出現在容器內 Dockfile基本語法
from 功能為指定基礎映象,並且必須是第一條指令。如果不以任何映象為基礎,那麼可寫為 from scratch。接下來所寫的指令將作為映象的第一層開始。格式 from from from 預設值為latest maintainer 指定作者 格式 maintainerenv 為容器設定環境變數 e...
Dockfile檔案解析
from centos maintainer zzyy126.com 把宿主機當前上下文的c.txt拷貝到容器 usr local 路徑下 copyc.txt usr local cincontainer.txt 把j a與tomcat新增到容器中 addjdk 8u171 linux x64.ta...
Ruby 語法講解
讓我們編寫乙個簡單的 ruby 程式。所有的 ruby 副檔名都是.rb。所以,把下面的源 放在 test.rb 檔案中。usr bin ruby w puts hello,ruby 在這裡,假設您的 usr bin 目錄下已經有可用的 ruby 直譯器。現在,嘗試執行這個程式,如下所示 ruby ...