ENTRYPOINT

ENTRYPOINT有两种形式:

  • ENTRYPOINT ["executable", "param1", "param2"] (exec 形式,推荐)
  • ENTRYPOINT command param1 param2 (shell 形式)

ENTRYPOINT 允许你配置一个容器作为可执行的。

例如,下面的会使用默认的内容启动nginx,监听80端口:

docker run -i -t --rm -p 80:80 nginx

docker run <image> 的命令行参数会附加到ENTRYPOINTexec 形式后,并且会覆盖所用使用CMD 指定的元素。这允许把参数传入到entry point。例如,docker run <image> -d 会传输-d 参数到entry point。你可以覆写ENTRYPOINT 指令使用docker run --entrypoint 命令。

shell形式会保证任何CMDrun的命令行参数不会被使用。但是有不好的一点,你的ENTRYPOINT 会被作为/bin/sh -c的子命令,是不会传输信号的。这以为着你执行的东西不是PID 1 ,并且不会收到Unix的信号。因此你执行的东西是不会收到docker stop <container>SIGTERM 信号。

只有Dockerfile中的最后一个ENTRYPOINT指令会生效。

results matching ""

    No results matching ""