雲計算Dockerfile中指令詳解

2021-12-30 11:35:18 字數 2498 閱讀 4422

dockerfile是乙個文字格式的配置檔案,用於快速建立自定義的映象。

一、基礎結構

dockerfile有一行行命令語句組成,並支援以# 開頭的注釋行

dockerfile分為四部分:基礎映象資訊、維護者資訊、映象操作指令和容器啟動時執行的指令

例:#第一行必須制定基於的基礎映象

from ubuntu

#維護者資訊

maintainer docker_user [email protected]

#映象操作

run apt-get update && apt-get install -y nginx

#容器啟動時執行

cmd /usr/sbin/nginx二、dockerfile中的指令

1.from

格式:from作用:制定基礎映象

2.maintain

格式:maintainer 作用:指定維護者資訊

3.run

格式:run(由shell啟動,linux預設為`/bin/sh -c`,windows預設為`cmd /s /c`) run ["executable", "param1", "param2"] (執行可執行檔案) 作用:構建映象時執行的命令

4.cmd

格式:cmd ["executable","param1","param2"] (執行可執行檔案,優先)

cmd ["param1","param2"] (設定了entrypoint,則直接呼叫entrypoint新增引數)

cmd command param1 param2 (執行shell內部命令)作用:

指定啟動容器時執行的命令,每個dockerfile只能有乙個cmd命令。如果有多個cmd命令,則只執行最後一條

5.expose

格式:expose […]作用:

告訴docker容器需要暴露的埠號,供互聯系統使用

6.env

格式:env

env = ...作用:

設定環境變數,在容器執行時保持例: 

run set -ex && apt-get update && apt-get install -y iputils-ping

env path /usr/local/bin:$path

env lang c.utf-8

env term xterm

env python_version 3.5.3

env name1=ping name2=on_ip

cmd $name1 $name27.add

格式:add 作用:

該命令將複製指定的到容器的,其中可以是dockerfile所在目錄的乙個相對路徑(檔案或目錄)

8.copy

格式:copy 作用:

複製本地主機的(dockerfile所在目錄的相對路徑的檔案或目錄)到容器的。目標目錄不存在時,會自動建立,與add不同的是不會解壓壓縮檔案

9.volumn

格式:volume ["/data"]作用:

用於指定持久化目錄,在容器啟動時用-v傳遞引數,例如-v ~/opt/data/mysql:/var/lib/mysql將本機的~/opt/data/mysql和容器內的/var/lib/mysql做持久化關聯

容器啟動時會載入,容器關閉後會回寫。

10.entrypoint

格式:entrypoint ["executable", "param1", "param2"] (可執行檔案, 優先)

entrypoint command param1 param2 (shell內部命令)作用:

配置容器,使其可執行化。配合cmd可省去"application",只使用引數。

例:from ubuntu

entrypoint ["top", "-b"]

cmd ["-c"]當啟動容器後,你將直接看到相當於執行了top -b -c

要進一步檢視,你可以直接使用命令docker exec -it test ps aux

相當於使用了docker exec top -b -it test ps aux

11. user

格式:user daemon作用:

指定執行容器時的使用者名稱或uid,後續的run、cmd和entrypoint也會使用指定使用者

12. workdir

格式:workdir /path/to/workdir作用:

配置工作目錄

13.onbuild

格式:onbuild [instruction]作用:

配置當所建立的映象作為其他新建立映象的基礎映象時,所執行的操作指令。

14. arg

格式:arg parameter_name作用:

由外部啟動時必須傳入的引數,在容器啟動時用--build-arg傳遞引數

例:容器啟動時傳參: --build-arg cont_img_ver=v2.0.1

from ubuntu

arg cont_img_ver

雲計算大會之雲計算應用

中國移動發布大雲 大雲產品包括並行資料探勘工具 分布式海量資料倉儲 彈性計算系統 雲儲存系統 平行計算執行環境共五種產品。亞馬遜網路服務 amazon webservices,aws google地球 地圖 gmail docs等 微軟 windows azure 雲計算作業系統 salesforc...

雲計算簡史 雲計算知識簡史

高聳入雲的建築雲端應用open stack 智慧型政務 雲計算賦能傳統政務公升級 服務 目前,我國電子政務體系正沿著最初的 兩網 一站 四庫 十二金 的設想穩步發展,以公民為中心 的理念正在深入人心 我國智慧型政務發展現狀 資訊基礎設施初步完善,軟硬體裝置投資逐步增加 通過頂層規劃和政務平台建設,提...

linux雲計算基礎(雲計算介紹)

什麼是雲計算 能夠為其它計算機提供服務的更高階的電腦 他有四種樣式 機架式 塔式 機櫃式 刀片式 典型的服務模式 c s,client server架構 由伺服器提供資源或某種功能 客戶機使用資源或功能 tcp ip是最廣泛支援的通訊協議集合 包括大量internet應用中的標準協議 支援跨網路架構...