docker中CMD和ENTRYPOINT区别

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录ENTRYPOINT 简介CMD简介案例(下面基于centos这个基础镜像构建一个镜像测试CMD命令)案例(下面基于centos这个基础镜像构建一个镜像测试ENTRYPOINT命令)

ENTRYPOINT 简介

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

ENTRYPOINT 指令的参数。

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

docker中CMD和ENTRYPOINT区别插图

CMD简介

docker中CMD和ENTRYPOINT区别插图1

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

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

docker中CMD和ENTRYPOINT区别插图2

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

2)使用dockerfile构建镜像

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

docker中CMD和ENTRYPOINT区别插图3

3)启动刚刚创建的镜像

命令:docker run -it 镜像id

docker中CMD和ENTRYPOINT区别插图4

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

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

docker中CMD和ENTRYPOINT区别插图5

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

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

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

docker中CMD和ENTRYPOINT区别插图6

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

2)使用dockerfile构建镜像

docker中CMD和ENTRYPOINT区别插图7

3)启动刚刚创建的镜像

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

docker中CMD和ENTRYPOINT区别插图8

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

docker中CMD和ENTRYPOINT区别插图9

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

c:直接启动容器

docker中CMD和ENTRYPOINT区别插图10

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

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容