iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
DevOps

運用皮毛技術與 AWS 平台、打造雲端蘿蔔服務三十天系列 第 7

【Day 7】Dockerfile x 連千毅:從一排漢堡認識容器映像檔

tags: 鐵人賽 Docker Dockerfile 漢堡

概述

碎念時間

大麥克的啟示(1) - 改善勞動條件、從麥當勞漲價開始

大麥克的啟示(2) - 漢堡、結合人類智慧結晶於一身

  • 就我的觀察,麥當勞之所以能夠成為速食界典範,係因透過
    1. 制定生產標準 --> 不會因為麥當勞開在台南就會變成砂糖漢堡
    2. 模組化製造 --> 拿別人做的麵包、別人生產的肉排、黃瓜進行組裝
    3. 流線化生產 --> 我們需要將漢堡的生產管線化、自動化

    圖片來源:Quora - How do you make McDonald's Big Mac?

Build Docker image - Dockerfile

製作原則

  • 製作漢堡之前,先來撰寫食譜 -- Dockerfile
  • 做漢堡的概念就是,選擇基底,和想吃的食物,一層一層堆疊起來。

    資料來源:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

  • 這個漢堡,最多 127 層。
  • 第一層FROM 選擇 Base Image
    • 上圖中的範例,選擇透過 ubuntu:18.04 作為基底
    • 撰寫 Dockerfile 同時瀏覽 Dockerhub 頁面
    • 就是選擇漢堡的基底,好像是潛艇堡的選擇比較多齁?
  • 第二層COPY 在製作映像檔階段,進行資料拷貝
    • 把當前 Dockerfile 所在的目錄下的所有資料,都放到容器內的 /app
  • 第三層RUN 在製作映像檔階段,運作的指令
    • 呼叫了 make 指令
    • 具體做了哪些事情,要看 Makefile 內容
    • 如果對於 make 稍微有困惑,可以看昨天發表的文章⋯⋯
  • 第四層CMD 定義容器執行後的預設行為
    • CMD 只會有一層
    • 我們先前提到,一個容器,只做一件事情、做好一件事⋯⋯
    • 一旦 CMD 所呼叫的指令,運作結束的時候,整個容器就會終止。
    • 不相信的話你可以試試看 kill -9 殺掉那個程序看看

不覺得很像漢堡嗎?

結論

  • DevOps 的工作,脫離不了 Container 作為基礎元件。
  • 還不刷一排漢堡

上一篇
【Day 6】make x Makefile x 任賢齊的救星
下一篇
【Day 8】Cloud x AWS x 李家同教授的最終歸宿
系列文
運用皮毛技術與 AWS 平台、打造雲端蘿蔔服務三十天30

尚未有邦友留言

立即登入留言