CMD和ENTRYPOINT的區別

一、CMD和ENTRYPOINT區別

1.1 CMD

1. CMD是指定容器啓動時要運行的命令,這和docker run命令啓動容器時指定要運行的命令十分類似

docker run busybox --rm -it --image=busybox /bin/bash

2.docker run要運行的命令也可以寫進dockerfile

CMD ["/bin/bash"]

3.docker run 命令行會覆蓋 CMD指令,以下命令會覆蓋Dockerfile中的 CMD["/bin/bash"]

docker run busybox --rm -it --image=busybox /bin/ps

1.2 ENTRYPOINT

1. ENTRYPOINT指令提供的命令則不容易在啓動容器時被覆蓋

ENTRYPOINT ["/usr/sbin/nginx"]

2.使用docker run 命令啓動包含ENTRYPOINT的容器,指定會作爲參數傳遞

docker run -it nginx -g "daemon off"

3.也可以使用CMD作爲默認啓動參數

ENTRYPOINT ["/usr/sbin/nginx"]
CMD["-h"]

4.如果確實有需要,也可以在運行容器時通過docker run --entrypoint 覆蓋ENTRYPOINT指令

docker run -it nginx --entrypoint “echo hello world” 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章