溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

docker中CMD和ENTRYPOINT區(qū)別是什么

發(fā)布時(shí)間:2023-04-21 15:02:44 來(lái)源:億速云 閱讀:72 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“docker中CMD和ENTRYPOINT區(qū)別是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“docker中CMD和ENTRYPOINT區(qū)別是什么”吧!

ENTRYPOINT 簡(jiǎn)介

ENTRYPOINT 容器啟動(dòng)后執(zhí)行的命令,讓容器執(zhí)行表現(xiàn)的像一個(gè)可執(zhí)行程序一樣,與CMD 的 區(qū) 別 是 不 可 以 被 docker run 覆 蓋 , 會(huì) 把 docker run 后 面 的 參 數(shù) 當(dāng) 作 傳 遞 給
ENTRYPOINT 指令的參數(shù)。

Dockerfile 中只能指定一個(gè) ENTRYPOINT,如果指定了很多,只 有 最 后 一 個(gè) 有 效 。 docker run 命 令 的 -entrypoint 參 數(shù) 可 以 把 指 定 的 參 數(shù) 繼 續(xù) 傳 遞 給ENTRYPOINT

docker中CMD和ENTRYPOINT區(qū)別是什么

CMD簡(jiǎn)介

docker中CMD和ENTRYPOINT區(qū)別是什么

案例(下面基于centos這個(gè)基礎(chǔ)鏡像構(gòu)建一個(gè)鏡像測(cè)試CMD命令)

1)在/opt/dockerfile目錄下創(chuàng)建一個(gè)Dockerfile文件     

docker中CMD和ENTRYPOINT區(qū)別是什么

#基于我們從阿里云下載下來(lái)的centos基礎(chǔ)鏡像
FROM centos
CMD ["/bin/echo","this is test cmd"]

2)使用dockerfile構(gòu)建鏡像

命令:docker build -f /opt/dockerfile/mydockerfile-test -t cmdtest:v1.0 .

docker中CMD和ENTRYPOINT區(qū)別是什么

3)啟動(dòng)剛剛創(chuàng)建的鏡像

命令:docker run -it 鏡像id

docker中CMD和ENTRYPOINT區(qū)別是什么

可以看到,/bin/echo This is test cmd 這條命令成功執(zhí)行.

直接進(jìn)入container里面,而不執(zhí)行echo指令,可以在docker run 后面直接加上/bin/bash命令,/bin/bash命令會(huì)覆蓋掉cmd后面的命令。

docker中CMD和ENTRYPOINT區(qū)別是什么

/bin/bash 命令覆蓋掉了dockerfile中的cmd命令,直接進(jìn)入到了container中。

案例(下面基于centos這個(gè)基礎(chǔ)鏡像構(gòu)建一個(gè)鏡像測(cè)試ENTRYPOINT命令)

1)在/opt/dockerfile目錄下創(chuàng)建一個(gè)Dockerfile文件    

docker中CMD和ENTRYPOINT區(qū)別是什么

#基于我們從阿里云下載下來(lái)的centos基礎(chǔ)鏡像
FROM centos
 
ENTRYPOINT ["/bin/echo","this is test entrypoint"]

2)使用dockerfile構(gòu)建鏡像

docker中CMD和ENTRYPOINT區(qū)別是什么

3)啟動(dòng)剛剛創(chuàng)建的鏡像

a: 直接在docker run 后面加參數(shù)/bin/bash,entrypoint會(huì)把/bin/bash當(dāng)成一個(gè)echo的字符串參數(shù),不會(huì)進(jìn)入到容器中。      

docker中CMD和ENTRYPOINT區(qū)別是什么

b: 如果想覆蓋dockerfile中entrypoint指令,可以在docker run命令中加--entrypoint參數(shù)來(lái)指定。

docker中CMD和ENTRYPOINT區(qū)別是什么

可以發(fā)現(xiàn)不打印上面的內(nèi)容了,直接進(jìn)入容器

c:直接啟動(dòng)容器

docker中CMD和ENTRYPOINT區(qū)別是什么

到此,相信大家對(duì)“docker中CMD和ENTRYPOINT區(qū)別是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI