Dockfile語法講解

2021-09-02 20:15:34 字數 1626 閱讀 9762

from

from scratch  #製作base image

from centos #使用base image

from ubuntu:14.04

label

定義容器的metadata

label maintainer="[email protected]"

label version="1.0"

label description="this is description"

run

執行一些命令,每呼叫run一次,就會增加一層分層,為了避免無用分層,合併多條命令成一行

run yun update && yun install -y vim \

python-dev #\換行

workdir

設定當前工作目錄

workdir /test

workdir demo

run pwd #輸出/test/demo

用workdir,不要用run cd ,盡量使用絕對目錄

add and copy

把本地檔案新增到image裡

add hello /

add test.tar.gz / #新增到根目錄並解壓

workdir /root

add hello test/ # /root/test/hello

workdir /root

copy hello test/

大部分情況,copy優於add,add除了copy還有解壓功能,新增遠端檔案/目錄使用curl或wget

env設定環境變數,常量

env mysql_version 5.6

run apt-get install -y mysql-server="$"\

&& rm -rf /var/lib/apt/list/*

run & cmd & entrypoint

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 ...