Dockerfile學習隨筆

2021-09-26 14:06:58 字數 1360 閱讀 6243

建立映象

docker commit +映象(name) + 即將生成的映象(name)

docker build -t 即將生成的映象(name) + dockerfile(位址)

from scratch #製作base image (依賴為空)

from ubuntu:18.04 # 使用 base image (依賴其他映象)

maintainer 作者

run 每一層run即是一層images(最少原則)

workdir /root 工作目錄(絕對目錄)

add and copy

add #新增目錄並解壓縮

新增遠端檔案 curl 或 wget

env aaa 我是乙個乘車 # 設定常量

volume and expose (儲存和網路)

cmd and entrypoint

讓容器以應用程式或者服務的形式執行

不會被忽略,一定會執行

最佳實踐: 寫乙個shell指令碼作為entrypoint(將外部shell指令碼引入執行) 例: entrypoint ["***.sh"]

from ubuntu:16.04

env name world

entrypoint echo "hello $name" # 等同於用shell 執行echo "hello $name"

結果 hello world

from ubuntu:16.04

env name world

entrypoint ["/bin/echo"," hello $name"] # 等同於 echo hello $name

結果 hello $name

from ubuntu:16.04

env name world

entrypoint ["/bin/bash","-c","echo hello $name"] # 等同於用shell 執行echo "hello $name"

結果 hello world

容器啟動時預設執行命令

如果 docker run 指定了其他命令, cmd命令被忽略

如果定義了多個cmd,只有最後乙個會執行

from ubuntu:16.04

env name world

cmd echo "hello $name"

docker dun [image] 輸出?

docker run -it [image] /bin/bash 輸出

ping 檢測ip的可達性

telnet 驗證服務的可用性

Docker 學習筆記 DockerFile

from 或者 from 指定容器啟動時使用的映象 必須為第一行 maintainer 用來指定作者資訊 run shell指令碼模式 run executable parms export 指定了暴露的埠 不會自動開啟 儘管在dockerfile裡制定了暴露的埠號,但在容器執行時仍舊要手動指定容器...

Docker學習筆記 Dockerfile基本知識

dockerfile由一行行命令語句組成,並支援以 開頭的注釋行。1 編寫乙個dockerfile檔案 dockerfile以from開始,基於乙個基礎映象,然後增加一行行命令語句。2 編寫外部檔案 dockerfile中每條指令都會生成一層新的映象.3 建立映象,在dockerfile檔案所在目錄...

Docker學習記錄 Dockerfile

一 dockerfile結構 大致分為四個部分 1 基礎映象資訊 2 維護者資訊 3 映象操作指令 4 容器啟動時執行指令。二 docker構建 三 dockerfile指令 四 add 指令詳解 test from ubuntu maintainer hello add test1.txt tes...