Dockerfile 里的CMD和ENTRYPOINT
CMD
CMD:此指令提供将在运行容器时使用的默认参数。可以通过向命令提供命令行参数来覆盖这些参数docker run。
cat Dockerfile
from alpine
CMD ["echo", "Hello, World!"]
docker build -t my_first_image .


当您在没有额外命令行参数的情况下运行 Docker 容器时,它将执行echo "Hello, World!". 但是如果你运行docker run "image" echo "Hello, Docker!",它会覆盖CMD而不是执行echo "Hello, Docker!"。
docker run my_first_image

docker run my_first_image echo "i don' know"

ENTRYPOINT
ENTRYPOINT:该指令指定了一个命令,该命令将在容器运行时始终执行
如果该CMD指令(如果使用)将为 提供额外的参数给ENTRYPOINT。
from alpine
ENTRYPOINT ["echo"]
CMD ["Hello, World!"]


当您在没有额外命令行参数的情况下运行 Docker 容器时,它将执行echo "Hello, World!"

如果你运行docker run "image" "i dont know",echo入口点会继续执行,但是cmd不会,cmd会被自己设置的参数覆盖。
