dockerfile如何構建鏡像

在使用 Dockerfile 構建鏡像時喊熟,Dockerfile 是一個文本文件寄猩,包含了構建鏡像所需的步驟和指令。通過定義這些指令叶洞,Docker 可以自動化地生成自定義的 Docker 鏡像。以下是構建 Docker 鏡像的基本流程和一些常用指令的解釋:

構建鏡像的步驟

  1. 編寫 Dockerfile:首先需要編寫一個 Dockerfile 文件禀崖,定義你想要的鏡像的構建步驟和指令衩辟。
  2. 運行 docker build 命令:在包含 Dockerfile 的目錄中運行 docker build 命令。Docker 會按照 Dockerfile 中的指令逐步構建鏡像帆焕。
  3. 查看生成的鏡像:構建完成后惭婿,可以使用 docker images 查看生成的鏡像,并使用該鏡像啟動容器叶雹。

常用 Dockerfile 指令

  1. FROM

    • 作用: 指定構建新鏡像所基于的基礎鏡像财饥。
    • 示例: FROM ubuntu:20.04 表示使用 Ubuntu 20.04 作為基礎鏡像。
  2. RUN

    • 作用: 在鏡像內執(zhí)行命令并提交執(zhí)行后的結果到鏡像層折晦。
    • 示例: RUN apt-get update && apt-get install -y nginx 安裝 nginx 到鏡像中钥星。
  3. COPY

    • 作用: 將文件從構建上下文(Dockerfile 所在目錄)復制到鏡像中的指定路徑。
    • 示例: COPY ./app /usr/src/app 將本地的 app 目錄復制到容器中的 /usr/src/app 路徑下满着。
  4. ADD

    • 作用: 功能類似于 COPY谦炒,但還支持自動解壓歸檔文件(如 .tar)贯莺。同時,還可以從 URL 復制文件宁改。
    • 示例: ADD https://example.com/file.tar.gz /app/ 會下載文件并自動解壓到 /app/ 路徑下缕探。
  5. CMD

    • 作用: 為容器指定默認的執(zhí)行命令。每個 Dockerfile 只能有一個 CMD 指令还蹲,多個會覆蓋爹耗。
    • 示例: CMD ["nginx", "-g", "daemon off;"] 表示啟動容器時運行 nginx。
    • 注意: CMD 的命令可以被 docker run 命令行中指定的命令覆蓋谜喊。
  6. ENTRYPOINT

    • 作用: 為容器指定一個主進程(入口點)潭兽,與 CMD 類似,但 ENTRYPOINT 更加固定斗遏,命令行參數(shù)會附加到 ENTRYPOINT 后山卦。
    • 示例: ENTRYPOINT ["nginx", "-g", "daemon off;"] 固定了容器啟動時運行 nginx。
  7. ENV

    • 作用: 設置環(huán)境變量诵次,這些變量會在容器內使用账蓉。
    • 示例: ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 設置環(huán)境變量。
  8. WORKDIR

    • 作用: 設置容器內的工作目錄藻懒,后續(xù)指令會在該目錄下執(zhí)行剔猿。
    • 示例: WORKDIR /usr/src/app 設定 /usr/src/app 為工作目錄。
  9. EXPOSE

    • 作用: 聲明容器暴露的端口嬉荆,但不實際打開端口归敬。用于文檔化或幫助容器運行時映射端口。
    • 示例: EXPOSE 80 聲明容器服務會運行在端口 80 上鄙早。
  10. VOLUME

    • 作用: 聲明容器內的某個目錄為掛載點汪茧,通常用于數(shù)據(jù)持久化。
    • 示例: VOLUME /data 指定 /data 為掛載點限番。
  11. LABEL

    • 作用: 為鏡像添加元數(shù)據(jù)標簽舱污,方便后續(xù)管理和查詢。
    • 示例: LABEL version="1.0" 為鏡像添加版本標簽弥虐。
  12. USER

    • 作用: 指定容器中運行進程的用戶扩灯。
    • 示例: USER www-data 指定使用 www-data 用戶運行進程。

示例 Dockerfile

# 基礎鏡像
FROM ubuntu:20.04

# 設置環(huán)境變量
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8

# 設置工作目錄
WORKDIR /usr/src/app

# 復制應用程序文件
COPY ./target  /usr/src/app

# 安裝依賴
RUN apt-get update && apt-get install -y python3-pip
RUN pip3 install --no-cache-dir -r requirements.txt

# 暴露端口
EXPOSE 8080

# 運行應用程序
CMD ["python3", "app.py"]

示例requirements.txt

django==3.2
requests==2.25.1
numpy==1.19.5

示例app.py

print("Hello, World!")

執(zhí)行命令:

 docker build -t mypython:v1 .
image.png

image.png

這個 Dockerfile 定義了一個基于 Ubuntu 的鏡像霜瘪,安裝了 Python 依賴珠插,并在容器啟動時運行 app.py

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末颖对,一起剝皮案震驚了整個濱河市捻撑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖顾患,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件番捂,死亡現(xiàn)場離奇詭異,居然都是意外死亡江解,警方通過查閱死者的電腦和手機设预,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膘流,“玉大人絮缅,你說我怎么就攤上這事鲁沥『艄桑” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵画恰,是天一觀的道長彭谁。 經常有香客問我,道長允扇,這世上最難降的妖魔是什么缠局? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮考润,結果婚禮上狭园,老公的妹妹穿的比我還像新娘。我一直安慰自己糊治,他們只是感情好唱矛,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著井辜,像睡著了一般绎谦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粥脚,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天窃肠,我揣著相機與錄音,去河邊找鬼刷允。 笑死冤留,一個胖子當著我的面吹牛,可吹牛的內容都是我干的树灶。 我是一名探鬼主播纤怒,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼破托!你這毒婦竟也來了肪跋?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤土砂,失蹤者是張志新(化名)和其女友劉穎州既,沒想到半個月后谜洽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡吴叶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年阐虚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚌卤。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡实束,死狀恐怖,靈堂內的尸體忽然破棺而出逊彭,到底是詐尸還是另有隱情咸灿,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布侮叮,位于F島的核電站避矢,受9級特大地震影響,放射性物質發(fā)生泄漏囊榜。R本人自食惡果不足惜审胸,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卸勺。 院中可真熱鬧砂沛,春花似錦、人聲如沸曙求。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽圆到。三九已至怎抛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芽淡,已是汗流浹背马绝。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挣菲,地道東北人富稻。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像白胀,于是被迫代替她去往敵國和親椭赋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容