認識 Dockerfile 的 Entrypoint、CMD

更新於 2023/07/25閱讀時間約 4 分鐘

在 Dockerfile 需要 ENTRYPOINT、CMD 指令,當用 docker run 建立 container 的時候,才可以控制 container 預設啟動哪個程式。ENTRYPOINT、CMD 有各種不同的搭配,可以根據不同的情況使用,但我這邊只介紹其中一種用法:當成一般的 CLI 使用。關鍵如下:

  1. 安裝執行檔。
  2. 用 ENTRYPOINT 設定預設執行檔。
  3. 用 CMD 設定預設執行檔的預設參數。

Dockerfile,安裝執行檔:

FROM ubuntu:20.04

RUN apt-get update
RUN apt-get install -y figlet
RUN apt-get install -y toilet

設定預設執行檔是 figlet,預設參數是「Hello World!」:

ENTRYPOINT ["figlet"]
CMD ["Hello World!"]

建立 Docker Image:

docker build -t ft .

建立 Container,得到「figlet Hello World!」的結果:

$ docker run --rm ft
_ _ _ _ __ __ _ _ _
| | | | ___| | | ___ \ \ / /__ _ __| | __| | |
| |_| |/ _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` | |
| _ | __/ | | (_) | \ V V / (_) | | | | (_| |_|
|_| |_|\___|_|_|\___/ \_/\_/ \___/|_| |_|\__,_(_)

加上參數「Hello Linux Guy」,替換掉 Dockerfile 內 CMD 的參數,得到「figlet Hello Linux Guy」的結果:

$ docker run --rm ft Hello Linux Guy
_ _ _ _ _ _ ____
| | | | ___| | | ___ | | (_)_ __ _ ___ __ / ___|_ _ _ _
| |_| |/ _ \ | |/ _ \ | | | | '_ \| | | \ \/ / | | _| | | | | | |
| _ | __/ | | (_) | | |___| | | | | |_| |> < | |_| | |_| | |_| |
|_| |_|\___|_|_|\___/ |_____|_|_| |_|\__,_/_/\_\ \____|\__,_|\__, |
|___/

用 --entrypoint 更換預設執行檔,並加上參數「Hello」,得到「toilet Hello」的結果:

$ docker run --rm --entrypoint toilet ft Hello
m m ""# ""#
# # mmm # # mmm
#mmmm# #" # # # #" "#
# # #"""" # # # #
# # "#mm" "mm "mm "#m#"


以下是完整的 Dockerfile:

FROM ubuntu:20.04

RUN apt-get update
RUN apt-get install -y figlet
RUN apt-get install -y toilet

ENTRYPOINT ["figlet"]
CMD ["Hello World!"]
專注於 C#, DevOps 的工程師
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Docker network 會影響 Container: 是否可以透過網路存取其它的 Container。 是否可以存取網際網路(Internet)。 是否可以存取實體網路(Physical Network)。 Docker bridg
CI/CD Pipeline 是一連串自動化步驟,可以測試軟體,部屬應用程式。但實際上到底要做什麼事情呢?可以從 GitLab 的 Auto DevOps 了解。 Auto Dependency Scanning 掃描第三方函式庫的安全性漏洞。參考下圖: 如果是 .NET 6 可以用以下指令掃描:
Prometheus 提供 PromQL 讓我們對 metrics 查詢,可以查出最近 1 小時內的請求成功率,最近 30 分鐘內的請求延遲等等的資訊,下面用範例說明。 Request Per Second 此範例查詢「每秒的請求數量」,我用 Traefik 當作範例說明。 這幫我們得出以下結果:
API Gateway 是什麼? 參考上圖,API Gateway 是一個程式,位於 Client 和 Microservice 之間。當伺服器架構採用這種設計後,會有以下優點: 架構彈性 - 當伺服器架構需要調整的時候,Client 不需要調整(前提是 API 維持不變)。 IP Listing
我發現從統計學、電子、電腦繪圖的角度來看取樣,在說法上有點不同,但我認為大致上的概念是相同的。 資料實在是「太多了」,沒辦法拿這麼多的資料處理,但我們可以降低資料的數量,但和原本的資料大致上差不多,我們就可以做分析,得到我們想要的結果。 Reference:
監控的解決方案有很多種,我這裡選擇的是 Prometheus。實際上只有 Prometheus 還不夠,真正其實會安裝以下項目: 以上這些安裝項目都可以用 kube-prometheus-stack 這個專案提供的 helm chart 安裝。 用 helm 安裝: Reference:
Docker network 會影響 Container: 是否可以透過網路存取其它的 Container。 是否可以存取網際網路(Internet)。 是否可以存取實體網路(Physical Network)。 Docker bridg
CI/CD Pipeline 是一連串自動化步驟,可以測試軟體,部屬應用程式。但實際上到底要做什麼事情呢?可以從 GitLab 的 Auto DevOps 了解。 Auto Dependency Scanning 掃描第三方函式庫的安全性漏洞。參考下圖: 如果是 .NET 6 可以用以下指令掃描:
Prometheus 提供 PromQL 讓我們對 metrics 查詢,可以查出最近 1 小時內的請求成功率,最近 30 分鐘內的請求延遲等等的資訊,下面用範例說明。 Request Per Second 此範例查詢「每秒的請求數量」,我用 Traefik 當作範例說明。 這幫我們得出以下結果:
API Gateway 是什麼? 參考上圖,API Gateway 是一個程式,位於 Client 和 Microservice 之間。當伺服器架構採用這種設計後,會有以下優點: 架構彈性 - 當伺服器架構需要調整的時候,Client 不需要調整(前提是 API 維持不變)。 IP Listing
我發現從統計學、電子、電腦繪圖的角度來看取樣,在說法上有點不同,但我認為大致上的概念是相同的。 資料實在是「太多了」,沒辦法拿這麼多的資料處理,但我們可以降低資料的數量,但和原本的資料大致上差不多,我們就可以做分析,得到我們想要的結果。 Reference:
監控的解決方案有很多種,我這裡選擇的是 Prometheus。實際上只有 Prometheus 還不夠,真正其實會安裝以下項目: 以上這些安裝項目都可以用 kube-prometheus-stack 這個專案提供的 helm chart 安裝。 用 helm 安裝: Reference:
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
導言: 在電視節目《BoJack Horseman》中,節目製作人拉斐爾·鮑伯·韋克斯伯格寫下了一句引人深思的話:“當你戴上玫瑰色眼鏡看別人時,紅旗只是看起來像旗子。” 雖然這句話最初是指戀愛關係中的紅旗,但對於內省和自我認識也同樣適用。我們常常很難認識到自己內部的警示信號,因為我們往往會對自
Thumbnail
吃過、玩過、用過、聞過、洗過、欣賞過、享受過、接觸過、曾經種植但被毛毛蟲吃到掛掉過。真的是徹底體會柑橘類特別的歡樂力量,非常好玩啊!
Thumbnail
原文連結:https://zb.house/你必须认识当前影响潜力巨大的粉丝经济-chiliz/ 【本文章轉載自鑄幣局 - 提供專業的加密貨幣行業的研究成果的分析平台。】 “粉丝令牌让Chiliz与加密世界的联系更加紧密,这也说明加密货币将给主流社会的影响潜力巨大。” 项目愿景 团队 Sam Li
  尼采曾说:“聪明的人,只要可以正确认识自己,便什么也不会失去。”由此可知,正确认识自我,是走好人生路的关键,对于自我的评价,因以自己为衡量标准,而不应以外物或他人评价为衡量自我的标准。   以物喜,可能会造成盲目自大,以物悲,可能会造成盲目自卑,对于认识自我,我们应以实际情况为衡量标准。不以物
Thumbnail
不管傳產還是科技業,要能夠傳承就得要說故事,把故事寫成書,經驗能夠傳下去。沒有傳承就只能師徒制一輩子,新血極難加入,失去活力的產業必定走向夕陽,這才是夕陽產業真正的問題。
Thumbnail
各位以為,少掉幾家髒兮兮工廠沒差嗎?這些中小代工廠養活的人口數以百萬計,今天命脈被中國掌握,哪天波動一下就是數十萬人失業,或是無薪假影響百萬家庭。
Thumbnail
生產製程不是只有生產,還有前後處理各種項目。你以為傳產消失很好嗎?這代表的是相關產業,連同工廠附近的基本食衣住都消失掉,表面上關掉一間廠不過100人失業,連動到的終端人數可能超過10,000人。
Thumbnail
這個系列要談幾個主題,主要是要讓「非產業界」的人,了解現代產業的複雜,以及相關製程對環境的影響,受眾設定是非工科的人,以文法商組,且沒有在產業界,特別是傳產這一塊的為對象,希望這些朋友在談產業的去留,或是討論各種優惠與補貼,以及環保衛生政策的時候,能夠有更進一步的認識。
前言 投资心态:我是老板 涨跌原理  涨停跌停 两大风险 危险股票 三种获利 股票费用  交割制度 最佳消息来源 财报3步骤 除权、除息 指数VS个股 四大指标 结语   投资心态:我是老板 想要在股市赚钱,首先要建立老板心态。所
Thumbnail
文章索引 前言 历史寻根 何谓股票 股本/缴足资本 股票单位  四种类、四形式 结语 前言 众多理财工具中,股票应该算是最有知名度的明星。若想理财,这个工具必须懂得使用。一起进入股票的世界吧! 历史寻根:集资、分担、比例 地理大发现时期,哥伦布发现新大陆、麦哲伦团队
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
導言: 在電視節目《BoJack Horseman》中,節目製作人拉斐爾·鮑伯·韋克斯伯格寫下了一句引人深思的話:“當你戴上玫瑰色眼鏡看別人時,紅旗只是看起來像旗子。” 雖然這句話最初是指戀愛關係中的紅旗,但對於內省和自我認識也同樣適用。我們常常很難認識到自己內部的警示信號,因為我們往往會對自
Thumbnail
吃過、玩過、用過、聞過、洗過、欣賞過、享受過、接觸過、曾經種植但被毛毛蟲吃到掛掉過。真的是徹底體會柑橘類特別的歡樂力量,非常好玩啊!
Thumbnail
原文連結:https://zb.house/你必须认识当前影响潜力巨大的粉丝经济-chiliz/ 【本文章轉載自鑄幣局 - 提供專業的加密貨幣行業的研究成果的分析平台。】 “粉丝令牌让Chiliz与加密世界的联系更加紧密,这也说明加密货币将给主流社会的影响潜力巨大。” 项目愿景 团队 Sam Li
  尼采曾说:“聪明的人,只要可以正确认识自己,便什么也不会失去。”由此可知,正确认识自我,是走好人生路的关键,对于自我的评价,因以自己为衡量标准,而不应以外物或他人评价为衡量自我的标准。   以物喜,可能会造成盲目自大,以物悲,可能会造成盲目自卑,对于认识自我,我们应以实际情况为衡量标准。不以物
Thumbnail
不管傳產還是科技業,要能夠傳承就得要說故事,把故事寫成書,經驗能夠傳下去。沒有傳承就只能師徒制一輩子,新血極難加入,失去活力的產業必定走向夕陽,這才是夕陽產業真正的問題。
Thumbnail
各位以為,少掉幾家髒兮兮工廠沒差嗎?這些中小代工廠養活的人口數以百萬計,今天命脈被中國掌握,哪天波動一下就是數十萬人失業,或是無薪假影響百萬家庭。
Thumbnail
生產製程不是只有生產,還有前後處理各種項目。你以為傳產消失很好嗎?這代表的是相關產業,連同工廠附近的基本食衣住都消失掉,表面上關掉一間廠不過100人失業,連動到的終端人數可能超過10,000人。
Thumbnail
這個系列要談幾個主題,主要是要讓「非產業界」的人,了解現代產業的複雜,以及相關製程對環境的影響,受眾設定是非工科的人,以文法商組,且沒有在產業界,特別是傳產這一塊的為對象,希望這些朋友在談產業的去留,或是討論各種優惠與補貼,以及環保衛生政策的時候,能夠有更進一步的認識。
前言 投资心态:我是老板 涨跌原理  涨停跌停 两大风险 危险股票 三种获利 股票费用  交割制度 最佳消息来源 财报3步骤 除权、除息 指数VS个股 四大指标 结语   投资心态:我是老板 想要在股市赚钱,首先要建立老板心态。所
Thumbnail
文章索引 前言 历史寻根 何谓股票 股本/缴足资本 股票单位  四种类、四形式 结语 前言 众多理财工具中,股票应该算是最有知名度的明星。若想理财,这个工具必须懂得使用。一起进入股票的世界吧! 历史寻根:集资、分担、比例 地理大发现时期,哥伦布发现新大陆、麦哲伦团队