开发者社区> 问答> 正文

dockerfile中的ENTRYPOINT指令是什么啊?

已解决

能解释一下dockerfile中的ENTRYPOINT指令吗?

展开
收起
格格的阿里云 2022-04-03 10:30:00 439 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    ENTRYPOINT
    类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。

    但是, 如果运行 docker run 时使用了 --entrypoint 选项,将覆盖 ENTRYPOINT 指令指定的程序。

    优点:在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数。

    注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。

    格式:

    ENTRYPOINT ["<executeable>","<param1>","<param2>",...]
    
    

    可以搭配 CMD 命令使用:一般是变参才会使用 CMD ,这里的 CMD 等于是在给 ENTRYPOINT 传参,以下示例会提到。

    示例:

    假设已通过 Dockerfile 构建了 nginx:test 镜像:

    FROM nginx
    
    ENTRYPOINT ["nginx", "-c"] # 定参
    CMD ["/etc/nginx/nginx.conf"] # 变参 
    

    1、不传参运行

    $ docker run  nginx:test
    
    容器内会默认运行以下命令,启动主进程。
    

    nginx -c /etc/nginx/nginx.conf

    2、传参运行
    

    $ docker run nginx:test -c /etc/nginx/new.conf

    容器内会默认运行以下命令,启动主进程(/etc/nginx/new.conf:假设容器内已有此文件)
    

    nginx -c /etc/nginx/new.conf

    2022-04-03 12:00:15
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载