docker中CMD和ENTRYPOINT区别

 更新时间:2023年04月21日 10:45:12   作者:爱上口袋的天空  
本文主要介绍了docker中CMD和ENTRYPOINT区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

ENTRYPOINT 简介

ENTRYPOINT 容器启动后执行的命令,让容器执行表现的像一个可执行程序一样,与CMD 的 区 别 是 不 可 以 被 docker run 覆 盖 , 会 把 docker run 后 面 的 参 数 当 作 传 递 给
ENTRYPOINT 指令的参数。

Dockerfile 中只能指定一个 ENTRYPOINT,如果指定了很多,只 有 最 后 一 个 有 效 。 docker run 命 令 的 -entrypoint 参 数 可 以 把 指 定 的 参 数 继 续 传 递 给ENTRYPOINT

clipboard.png

CMD简介

clipboard.png

案例(下面基于centos这个基础镜像构建一个镜像测试CMD命令)

1)在/opt/dockerfile目录下创建一个Dockerfile文件     

#基于我们从阿里云下载下来的centos基础镜像
FROM centos
CMD ["/bin/echo","this is test cmd"]

2)使用dockerfile构建镜像

命令:docker build -f /opt/dockerfile/mydockerfile-test -t cmdtest:v1.0 .

3)启动刚刚创建的镜像

命令:docker run -it 镜像id

可以看到,/bin/echo This is test cmd 这条命令成功执行.

直接进入container里面,而不执行echo指令,可以在docker run 后面直接加上/bin/bash命令,/bin/bash命令会覆盖掉cmd后面的命令。

/bin/bash 命令覆盖掉了dockerfile中的cmd命令,直接进入到了container中。

案例(下面基于centos这个基础镜像构建一个镜像测试ENTRYPOINT命令)

1)在/opt/dockerfile目录下创建一个Dockerfile文件    

#基于我们从阿里云下载下来的centos基础镜像
FROM centos
 
ENTRYPOINT ["/bin/echo","this is test entrypoint"]

2)使用dockerfile构建镜像

3)启动刚刚创建的镜像

a: 直接在docker run 后面加参数/bin/bash,entrypoint会把/bin/bash当成一个echo的字符串参数,不会进入到容器中。      

b: 如果想覆盖dockerfile中entrypoint指令,可以在docker run命令中加--entrypoint参数来指定。

可以发现不打印上面的内容了,直接进入容器

c:直接启动容器

 到此这篇关于docker中CMD和ENTRYPOINT区别的文章就介绍到这了,更多相关docker CMD和ENTRYPOINT内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker之容器导出为镜像问题

    Docker之容器导出为镜像问题

    这篇文章主要介绍了Docker之容器导出为镜像问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Docker 清理命令集锦

    Docker 清理命令集锦

    这篇文章主要介绍了Docker 清理命令集锦,需要的朋友可以参考下
    2014-10-10
  • docker如何配置环境变量

    docker如何配置环境变量

    这篇文章主要介绍了docker如何配置环境变量问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 使用docker部署django的详细步骤

    使用docker部署django的详细步骤

    当用Django框架开发的网站项目完成后上线的话可以用物理主机、虚拟机来部署,也可以容器,下面这篇文章主要给大家介绍了关于使用docker部署django的详细步骤,需要的朋友可以参考下
    2022-08-08
  • 基于Docker的MongoDB实现授权访问的方法

    基于Docker的MongoDB实现授权访问的方法

    这篇文章主要介绍了基于Docker的MongoDB实现授权访问的方法,需要的朋友可以参考下
    2017-03-03
  • Jenkins整合Docker自动化部署的实现

    Jenkins整合Docker自动化部署的实现

    本文主要介绍了Jenkins整合Docker自动化部署的实现,通过结合Jenkins的持续集成和Docker的容器化技术,可以高效地构建、测试和部署应用程序,感兴趣的可以了解一下
    2023-11-11
  • 详解docker中使用systemctl启动服务报错的解决办法

    详解docker中使用systemctl启动服务报错的解决办法

    这篇文章主要介绍了详解docker中使用systemctl启动服务报错的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • docker 多个-e参数的具体使用

    docker 多个-e参数的具体使用

    在使用Docker镜像运行容器时,我们可以通过使用-e参数来设置环境变量,有时我们需要设置多个环境变量,这就涉及到如何实现多个-e参数的问题,本文就来详细的介绍一下
    2024-01-01
  • docker registry私服搭建的方法

    docker registry私服搭建的方法

    这篇文章主要介绍了docker registry私服搭建的方法,docker官方的registry镜像分为两个版本,v2和v2以前的版本,本文将分别搭建基于SSL和登录认证的以上两个版本的docker私服
    2018-05-05
  • 如何打jar包为Docker镜像并部署

    如何打jar包为Docker镜像并部署

    这篇文章主要介绍了打jar包为Docker镜像并部署,通过将应用程序打包为Docker镜像,并在容器中运行,可以提供更高的灵活性、可移植性和可靠性,简化应用程序的部署和管理,提升开发和运维效率,降低系统运行成本,需要的朋友可以参考下
    2023-11-11

最新评论