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使用jdk21启动jar包报错的解决方案

    docker使用jdk21启动jar包报错的解决方案

    这篇文章主要介绍了docker使用jdk21启动jar包报错的解决方案,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • 如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

    如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

    本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到Nginx容器内,Nginx可以提供文件列表和下载功能,推荐使用Docker Compose来管理容器
    2025-03-03
  • Docker导出镜像和容器的操作步骤

    Docker导出镜像和容器的操作步骤

    Docker的流行与它对容器的易分享和易移植密不可分,用户不仅可以把容器提交到公共服务器上,还可以把容器导出到本地文件系统中,同样,我们也可以把导出的容器重新导入到Docker运行环境中,本文就给大家介绍了Docker导出镜像和容器的操作步骤
    2024-09-09
  • docker容器状态的转换实现

    docker容器状态的转换实现

    这篇文章主要介绍了docker容器状态的转换实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker nginx 运行后无法访问的问题解决

    docker nginx 运行后无法访问的问题解决

    这篇文章主要介绍了docker nginx 运行后无法访问的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Docker Desktop更改镜像存储位置的实现

    Docker Desktop更改镜像存储位置的实现

    本文主要主要介绍了Docker Desktop更改镜像存储位置的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • docker通过Dockerfile构建mysql镜像的方法

    docker通过Dockerfile构建mysql镜像的方法

    这篇文章主要介绍了docker通过Dockerfile构建mysql镜像,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 如何查看docker中mysql的版本问题

    如何查看docker中mysql的版本问题

    这篇文章主要介绍了如何查看docker中mysql的版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Docker保存镜像和导入镜像文件完整图文教程

    Docker保存镜像和导入镜像文件完整图文教程

    这篇文章主要给大家介绍了关于Docker保存镜像和导入镜像文件的完整图文教程,适用于备份、迁移和版本控制等场景,文中通过代码及图文介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • docker+ddns实现动态域名的示例代码

    docker+ddns实现动态域名的示例代码

    本文主要介绍了Docker使用ddns-go实现动态域名,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11

最新评论