一、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”