docker下entrypoint和cmd的差別是什麼?
docker下entrypoint和cmd的差異是:1、CMD指令執行一個可執行的檔案並提供參數,可以為ENTRYPOINT指定參數;2、ENTRYPOINT指令本身也可以包含參數,變動的參數不會被覆蓋。
docker下entrypoint和cmd的差異是:
1、CMD指令:
CMD在容器執行的時候提供一些指令及參數,用法如下:
#CMD ["executable","param1","param2"] (exec form , this is the preferred form)
CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
CMD command param1 param2 (shell form)
第一種用法:執行一個可執行的檔案並提供參數。
第二種用法:為ENTRYPOINT指定參數。
第三種用法(shell form):是以”/bin/sh -c”的方法執行的命令。
如你指定:
CMD [“/bin/echo”, “this is a echo test ”]
build後運行(假設鏡像名為ec):
docker run ec
就會輸出:
this is a echo test
是不是感覺很像開機啟動項,你可以暫時這樣理解。
注意點:
#docker run
指令如果指定了參數會把CMD裡的參數覆寫: (這裡說明一下,如:docker run -it ubuntu /bin/bash 指令的參數是指/bin/bash 而非-it ,-it
只是docker 的參數,而不是容器的參數,以下所說參數皆如此。)
同樣是上面的ec鏡像啟動:
docker run ec /bin/bash
就不會輸出:
this is a echo test
因為CMD指令被」/bin/bash」覆寫了。
2、ENTRYPOINT指令
#字面上就是進入點,而它的功能也恰如其意。它可以讓你的容器功能表現得像一個可執行程式。
容器功能表現得像一個可執行程式一樣,這是什麼意思呢?
直接給個例子好說話:
範例一:
使用下面的ENTRYPOINT建構映像:
ENTRYPOINT ["/bin/echo"]
那麼docker build出來的映像以後的容器功能就像一個/bin/echo程式:
例如我build出來的鏡像名稱叫imageecho,那麼我可以這樣用它:
docker run -it imageecho “this is a test”
這裡就會輸出”this is a test”這串字符,而這個imageecho鏡像對應的容器表現出來的功能就像一個echo程式一樣。你加的參數「this is a test」會加到ENTRYPOINT後面,就成了這樣 /bin/echo “this is a test” 。現在你應該明白進入點的意思了吧。
範例二:
ENTRYPOINT ["/bin/cat"]
建構出來的鏡像你可以這樣運行(假設名為st):
docker run -it st /etc/fstab
這樣相當: /bin/cat /etc /fstab
這個指令的作用。運行之後就輸出/etc/fstab
裡的內容。
ENTRYPOINT有兩種寫法:
寫法一:
ENTRYPOINT ["executable", "param1", "param2"] (the preferred exec form)
寫法二:
ENTRYPOINT command param1 param2 (shell form)
你也可以在docker run指令時使用–entrypoint指定(但是只能用寫法一)。
下面是我把ENTRYPOINT設為[“/bin/sh -c”]時候運行的情況:
linux-oj9e:/home/lfly/project /docker # docker run -it t2 /bin/bash
root@4c8549e7ce3e:/# ps
PID TTY
- 1 ? 00:00:00 sh
- 9 ? 00:00:00 bash
- 19 ? 00:00:00 ps
/bin/bash只是作為
/bin/sh -c後面的參數。
FROM ubuntu:14.10 ENTRYPOINT ["top", "-b"] CMD ["-c"]
相關教學推薦:
以上是docker下entrypoint和cmd的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

管理員命令提示行中輸入以下指令關閉manage-bde-offC:但有時候出現如下提示:錯誤一此磁碟區儲存可以對其他磁碟區執行自動解鎖的一個或多個外部金鑰。必須先刪除此類金鑰,才能解鎖此磁碟區。此時需要先執行以下命令:(系統分區不是C的話更改下面的盤符)manage-bde-autounlock-ClearAllKeysc:錯誤二由於卷已鎖定,此操作無法執行。 manage-bde-unlockc:-rp123456789012345678901234567890123456789012345678注意:

答案:PHP微服務採用HelmCharts部署進行敏捷開發,並使用DockerContainer容器化以實現隔離和可擴展性。詳細描述:使用HelmCharts自動部署PHP微服務,實現敏捷開發。 Docker映像允許對微服務進行快速迭代和版本控制。 DockerContainer標準隔離微服務,而Kubernetes負責管理容器的可用性和可擴充性。利用Prometheus和Grafana監控微服務效能和健康狀況,並創建警告和自動修復機制。

PiNetwork節點詳解及安裝指南本文將詳細介紹PiNetwork生態系統中的關鍵角色——Pi節點,並提供安裝和配置的完整步驟。 Pi節點在PiNetwork區塊鏈測試網推出後,成為眾多先鋒積極參與測試的重要環節,為即將到來的主網發布做準備。如果您還不了解PiNetwork,請參考Pi幣是什麼?上市價格多少? Pi用途、挖礦及安全性分析。什麼是PiNetwork? PiNetwork項目始於2019年,擁有其專屬加密貨幣Pi幣。該項目旨在創建一個人人可參與

DeepSeek的安裝方法有多種,包括:從源碼編譯(適用於經驗豐富的開發者)使用預編譯包(適用於Windows用戶)使用Docker容器(最便捷,無需擔心兼容性)無論選擇哪種方法,請仔細閱讀官方文檔並充分準備,避免不必要的麻煩。

答:利用PHPCI/CD實現快速迭代,包括設定CI/CD管道、自動化測試和部署流程。設定CI/CD管道:選擇CI/CD工具,配置程式碼儲存庫,定義建置管道。自動化測試:編寫單元和整合測試,使用測試框架簡化測試。實戰案例:使用TravisCI:安裝TravisCI,定義管道,啟用管道,查看結果。實現持續交付:選擇部署工具,定義部署管道,自動化部署。效益:提高開發效率、減少錯誤、縮短交貨時間。

使用Docker容器部署JavaEE應用程式:建立Dockerfile定義映像、建置映像、運行容器並映射端口,然後在瀏覽器中存取應用程式。範例JavaEE應用程式:RESTAPI與資料庫交互,透過Docker部署後可在localhost存取。

微服務架構使用PHP框架(如Symfony和Laravel)來實現微服務,並遵循RESTful原則和標準資料格式來設計API。微服務透過訊息佇列、HTTP請求或gRPC進行通信,並使用工具(如Prometheus和ELKStack)進行監控和故障排除。

1.首先,開啟介面後,點選左側的擴充圖示按鈕2.隨後,在開啟的擴充頁面中找到搜尋欄位置3.接著,滑鼠輸入Docker字眼尋找擴充插件4.最後,選取目標插件,點選右下角的安裝按鈕即可
