美文网首页
Dockerfile的CMD与ENTRYPOINT

Dockerfile的CMD与ENTRYPOINT

作者: 幻影翔 | 来源:发表于2020-02-06 20:39 被阅读0次

    RUN : 执行命令并创建新的Image Layer
    CMD : 设置容器启动后默认执行的命令和参数
    ENTRYPOINT: 设置容器启动时运行的命令

    • Shell 格式
    RUN apt-get install -y vim 
    CMD echo "hello docker"
    ENTRYPOINT echo "hello docker"
    
    • Exec格式
    RUN [ "apt-get" , "install", "-y", "vim" ]
    CMD [ "/bin/echo", "hello docker" ]
    ENTRYPOINT [ "/bin/bash" ,"-c" " echo hello docker" ]
    
    // CMD
    CMD是容器启动默认执行的命令 
    如果docker run 指定了其他命令, CMD 命令被忽略
    如果定义了多个CMD, 只有最后一个会执行
    
    // ENTRYPOINT
    让容器以应用程序或者服务的形式运行
    不会被忽略,一定会执行
    最佳实践:写一个shell脚本作为entrypoint
    COPY docker.entrypoint.sh /usr/local/bin
    ENTRYPOINT ["docker-entrypoint.sh"]
    
    EXPOSE 27017
    CMD ["mongod"]
    

    相关文章

      网友评论

          本文标题:Dockerfile的CMD与ENTRYPOINT

          本文链接:https://www.haomeiwen.com/subject/ekguxhtx.html