今天就跟大家聊聊有關(guān)ENTRYPOINT于CMD命令在Dockerfile中使用有哪些區(qū)別,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)公司主營(yíng)岳西網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā),岳西h5微信小程序開(kāi)發(fā)搭建,岳西網(wǎng)站營(yíng)銷推廣歡迎岳西等地區(qū)企業(yè)咨詢CMD 指令
CMD 指令指定容器啟動(dòng)時(shí)需要運(yùn)行的程序。一般用最簡(jiǎn)單的方式啟動(dòng)一個(gè)容器時(shí)使用docker run 會(huì)傳遞參數(shù)給docker指令
docker run -it image /bin/bash
后面的/bin/bash 其實(shí)是傳遞參數(shù),告知容器啟動(dòng)時(shí)運(yùn)行一個(gè)shell。這個(gè)過(guò)程可以用CMD 指令等效的替換
CMD ['/bin/bash']
因此在Dockerfile中存在這個(gè)CMD指令指定的命令時(shí),啟動(dòng)容器就可以不進(jìn)行參數(shù)傳遞。
docker run -it image
執(zhí)行效果一致。
[root@MiWiFi-R3L-srv test]# docker run --name test -it test_image
[root@3a1bb0c9e35c /]#
如果dockerfile中已經(jīng)指定了容器啟動(dòng)時(shí)運(yùn)行的程序,同時(shí)在使用docker run 啟動(dòng)容器時(shí)使用了命令行參數(shù),那么dockerfile 中的cmd 指令將無(wú)效
docker run -it image /bin/ps
發(fā)現(xiàn)啟動(dòng)容器后沒(méi)有shell ,只是打印出了當(dāng)前容器中的進(jìn)程狀態(tài),cmd 指令效果被覆蓋。
PID TTY TIME CMD 1 ? 00:00:00 ps [root@MiWiFi-R3L-srv test]#