国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Dockerfile: CMD與ENTRYPOINT區(qū)別

這篇具有很好參考價值的文章主要介紹了Dockerfile: CMD與ENTRYPOINT區(qū)別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

CMD和ENTRYPOINT的作用


CMD和ENTRYPOINT這兩個命令,我接觸到的是用在了Dockerfile中用于構(gòu)建容器。

CMD:The main purpose of a CMD is to provide defaults for an executing container. CMD的主要用途是為正在執(zhí)行的容器提供默認值。也就是指定這個容器啟動的時候要運行的命令。

ENTRYPOINT:也是指定這個容器啟動的時候要運行的命令。
?

CMD語法

The CMD instruction has three forms:

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)

Dockerfile中只有一條CMD指定,如果列出多個,只有最后一個CMD才會生效。
CMD的主要目的是為正在執(zhí)行的容器提供默認值。這些默認值可以包括可執(zhí)行問卷,也可以省略可執(zhí)行問卷,在這種情況下必須指定給一條ENTRYPOINT指令。

ENTRYPOINT語法

ENTRYPOINT 有兩種形式:

exec形式,這是首選形式:

ENTRYPOINT ["executable", "param1", "param2"]
外殼形式:

ENTRYPOINT command param1 param2

與CMD類似再Dockerfile中只有一條ENTRYPOINT指定,如果列出多個,只有最后一個ENTRYPOINT生效。

CMD與ENTRYPOINT的區(qū)別

docker run后面的參數(shù)會將CMD指定的參數(shù)進行覆蓋。

ENTRYPOINT與CMD的區(qū)別是不可以被docker run 后的參數(shù)覆蓋,會把docker run后面的參數(shù)傳遞給ENTRYPOINT指定的參數(shù)。

案例


使用使用Dockerfile構(gòu)建centos鏡像,再Dockerfile中使用CMD和ENTRYPOINT。當docker run +參數(shù)的時候進行CMD 和ENTRYPOINT的測試,CMD指定的參數(shù)是否會被覆蓋,以及ENTRYPOINT指定的參數(shù)是否會最佳docker run后面的參數(shù)。
?

測試CMD

1.創(chuàng)建一個名為dockerfile-centos-test的文件,再編寫dockerfile文件。

# 編寫dockerfile文件
$ vim dockerfile-centos-test
FROM centos
CMD ["ls","-a"] #再容器運行的時候列出所有目錄
# 構(gòu)建鏡像
$ docker build -f dockerfile-centos-test -t cmd-test:0.1 .
# 運行鏡像
$ docker run cmd-test:0.1

列出了所有目錄

Dockerfile: CMD與ENTRYPOINT區(qū)別,Docker,java,服務(wù)器,linux

2.這個時候我們再追加一個命令-l 變成ls-al

Dockerfile: CMD與ENTRYPOINT區(qū)別,Docker,java,服務(wù)器,linux

出現(xiàn)錯誤,再CMD的情況加-l 替換了CMD[“l(fā)s”,“-l”].由于-l不是命令所以報錯。

3.我們再輸入docker run cmd-test:0.1 ls

Dockerfile: CMD與ENTRYPOINT區(qū)別,Docker,java,服務(wù)器,linux

這個時候就執(zhí)行成功了。驗證了 docker run時輸入的命令會替換掉CMD的命令

測試ENTRYPOINT

和之前測試CMD一樣,

#創(chuàng)建一個文件docker-test-entrypoint
#編寫dockerfile文件
$ vim docker-test-entrypoint
FROM centos
ENTRYPOINT ["ls","-a"]
#構(gòu)建鏡像
$ docker build -f docker-test-entrypoint -t entrypoint-test:0.1 .
#運行鏡像
$ docker run entrypoint-test:0.1```
這個時候追加一個命令-l 成為ls-al
```powershell
# 想追加一個命令 -l 成為ls -al
$ docker run cmd-test:0.1 -l

Dockerfile: CMD與ENTRYPOINT區(qū)別,Docker,java,服務(wù)器,linux

總結(jié)一下:

CMD的情況下 -l 替換了CMD的ls -a。

而ENTRYPOINT的情況下-l 追加到了ls -a 的后面 變成了ls -al。文章來源地址http://www.zghlxwxcb.cn/news/detail-784969.html

到了這里,關(guān)于Dockerfile: CMD與ENTRYPOINT區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 48-Dockerfile-CMD/ENTRYPOINT指令

    48-Dockerfile-CMD/ENTRYPOINT指令

    前言 本篇來學習下Dockerfile中的CMD/ENTRYPOINT指令 CMD 作用 啟動容器時默認執(zhí)行的命令 說明: 一個 Dockerfile 只有一個 CMD 指令,只有最后一個 CMD 指令生效 使用 docker run -d xxx CMD 命令是可以覆蓋 Dockerfile 中的 CMD 指令的 格式 使用示例 新建dockerfile 制作鏡像 運行容器 可以看到只執(zhí)

    2024年02月04日
    瀏覽(18)
  • dockerfile用ENTRYPOINT好還是用CMD好

    在 Dockerfile 中使用 `ENTRYPOINT` 和 `CMD` 都有其用途和優(yōu)劣勢,具體取決于你的應(yīng)用和需求。這兩個指令的主要區(qū)別在于如何處理容器啟動時的命令參數(shù)。 1. `CMD` 指令: ? ?- `CMD` 用于定義容器啟動時的默認命令,但它可以在運行容器時被替代。如果在運行容器時提供了命令參數(shù)

    2024年02月08日
    瀏覽(24)
  • docker的run,cmd,entrypoint分析和對比

    docker的run,cmd,entrypoint分析和對比

    本文一起看下Dockerfile中經(jīng)常用到的幾個類似命令,RUN,CMD,ENTRYPOINT。 想要有容器我們就必須先創(chuàng)建鏡像,而想要有鏡像,我們則必須寫一個用來描述想要創(chuàng)建的鏡像的文件,這個文件我們一般叫做Dockerfile (非強制) ,則容器怎么來的就如下圖: 經(jīng)過上圖的 過程1 我們就有

    2024年02月01日
    瀏覽(16)
  • Dockerfile——ENTRYPOINT詳解

    Dockerfile——ENTRYPOINT詳解

    ??Entrypoint的作用是,把整個container變成了一個可執(zhí)行的文件,這樣不能夠通過替換CMD的方法來改變創(chuàng)建container的方式。但是可以通過參數(shù)傳遞的方法影響到container內(nèi)部。 ENTRYPOINT 有兩種格式: ENTRYPOINT [“executable”, “param1”, “param2”] (exec 格式,首選) ENTRYPOINT command param

    2024年02月08日
    瀏覽(14)
  • Dockerfile ENTRYPOINT 使用變量

    如下 Dockerfile 文件中: 本意是想在 entrypoint 執(zhí)行的命令中添加變量參數(shù) JAVA_OPTS 和 PARAMS,如果按照這樣寫,變量是不被解析的,會報錯。 那么正確的寫法是使用 sh -c 命令來執(zhí)行后面的命令,示例如下: (END)

    2024年02月16日
    瀏覽(16)
  • 【Java】微服務(wù)——Docker容器部署(docker安裝,docker配置鏡像加速,DockerHub,docker基本操作,Dockerfile自定義鏡像.Docker-Compose)

    【Java】微服務(wù)——Docker容器部署(docker安裝,docker配置鏡像加速,DockerHub,docker基本操作,Dockerfile自定義鏡像.Docker-Compose)

    微服務(wù)雖然具備各種各樣的優(yōu)勢,但服務(wù)的拆分通用給部署帶來了很大的麻煩。 分布式系統(tǒng)中,依賴的組件非常多,不同組件之間部署時往往會產(chǎn)生一些沖突。 在數(shù)百上千臺服務(wù)中重復部署,環(huán)境不一定一致,會遇到各種問題 1.1.1.應(yīng)用部署的環(huán)境問題 大型項目組件較多,運

    2024年02月04日
    瀏覽(33)
  • Dockerfile 與 Docker Compose區(qū)別

    目錄 Dockerfile Docker Compose 綜合比較 Dockerfile 用途: Dockerfile 用于定義單個容器的構(gòu)建過程。它包含了一系列指令,每個指令都代表容器構(gòu)建過程中的一個步驟。這些步驟包括從基礎(chǔ)鏡像中構(gòu)建、安裝依賴、拷貝文件、設(shè)置環(huán)境變量等操作。 語法: Dockerfile 是一個文本文件,其

    2024年02月05日
    瀏覽(21)
  • dockerfile ENTRYPOINT 執(zhí)行.sh腳本提示找不到文件或文件不存在 No such file or directory

    我這里記錄的是我遇到的一種特殊情況,如果你也遇到了這個問題,且都試了在百度中找到的解決方法還沒有解決可以看看是不是和我遇到的問題一樣。 在Dockerfile中,我ADD了兩個文件,一個是jar包,一個是一個執(zhí)行jar包的.sh文件 但是在使用命令: 就會提示 /bin/sh: 0: cannot

    2024年01月21日
    瀏覽(27)
  • 服務(wù)器設(shè)置tomcat開機自啟動(cmd命令行語句)

    服務(wù)器設(shè)置tomcat開機自啟動(cmd命令行語句)

    1 找到tomcat安裝目錄,進入bin/文件夾下面,在此打開windows 命令行窗口。 2 輸入 將tomcat注冊成為windows服務(wù),其中tomcatXXX為服務(wù)名。 3查看剛剛注冊的服務(wù) “我的電腦”-》右鍵管理 發(fā)現(xiàn)剛剛的服務(wù)是手動的,并不是自動的,而且無法通過界面修改啟動方式。 4 命令行修改啟動

    2024年02月13日
    瀏覽(23)
  • cmd控制臺通過sftp命令下載服務(wù)器文件

    cmd控制臺通過sftp命令下載服務(wù)器文件

    因為同事電腦沒有遠程連接工具,所以使用cmd連接遠程,打開cmd控制臺。 1.sftp連接服務(wù)器 如果遠程主機的 IP 是 192.168.1.100或者是域名www.test.cn,用戶名是user,在命令行模式下輸入:sftp user@192.168.1.100或者 user@www.test.cn?;剀?,根據(jù)提示輸入密碼。 ? 2.如果下載的是文件夾,可

    2024年02月11日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包