本文主要介绍了docker中CMD和ENTRYPOINT区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
ENTRYPOINT 简介
ENTRYPOINT 容器启动后执行的命令,让容器执行表现的像一个可执行程序一样,与CMD 的 区 别 是 不 可 以 被 docker run 覆 盖 , 会 把 docker run 后 面 的 参 数 当 作 传 递 给
ENTRYPOINT 指令的参数。
Dockerfile 中只能指定一个 ENTRYPOINT,如果指定了很多,只 有 最 后 一 个 有 效 。 docker run 命 令 的 -entrypoint 参 数 可 以 把 指 定 的 参 数 继 续 传 递 给ENTRYPOINT
CMD简介
案例(下面基于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中CMD和ENTRYPOINT区别


基础教程推荐
- 服务器添加git钩子的步骤 2022-12-12
- linux下安装apache与php;Apache+PHP+MySQL配置攻略 2023-08-07
- Apache服务器配置攻略3 2022-09-01
- Apache Hudi数据布局黑科技降低一半查询时间 2022-10-06
- apache和nginx结合使用 2023-09-10
- nginx.conf(centos7 1.14)主配置文件修改 2023-09-23
- 实战Nginx_取代Apache的高性能Web服务器 2023-09-29
- linux之conda环境安装全过程 2023-07-11
- centos 7 安装及配置zabbix agent 2023-09-24
- IIS 6 的 PHP 最佳配置方法 2022-09-01