docker学习笔记12:Dockerfile 指令 ENTRYPOINT介绍
2016-03-10 15:28
1016 查看
本文介绍Dockerfile的 ENTRYPOINT指令的含义。
先回顾下CMD指令的含义,CMD指令可以指定容器启动时要执行的命令,但它可以被docker run命令的参数覆盖掉。
ENTRYPOINT 指令和CMD类似,它也可用户指定容器启动时要执行的命令,但如果dockerfile中也有CMD指令,CMD中的参数会被附加到ENTRYPOINT 指令的后面。 如果这时docker run命令带了参数,这个参数会覆盖掉CMD指令的参数,并也会附加到ENTRYPOINT 指令的后面。
这样当容器启动后,会执行ENTRYPOINT 指令的参数部分。
可以看出,相对来说ENTRYPOINT指令优先级更高。
我们来看个例子,下面是Dockerfile的内容
假设通过该Dockerfile构建的镜像名为 myimage。
1、当运行 docker run myimage 输出的内容是 defaultvalue,可以看出CMD指令的参数得确是被添加到ENTRYPOINT指令的后面,然后被执行。
2、当运行docker run myimage hello world 输出的内容是 hello world ,可以看出docker run命令的参数得确是被添加到ENTRYPOINT指令的后面,然后被执行,这时CMD指令被覆盖了。
3、另外我们可以在docker run命令中通过 --entrypoint 覆盖dockerfile文件中的ENTRYPOINT设置,如:
docker run --entrypoint="echo" myimage good 结果输出good
注意,不管是哪种方式,创建容器后,通过 dokcer ps查看容器信息时,COMMOND列会显示最终生效的启动命令。
先回顾下CMD指令的含义,CMD指令可以指定容器启动时要执行的命令,但它可以被docker run命令的参数覆盖掉。
ENTRYPOINT 指令和CMD类似,它也可用户指定容器启动时要执行的命令,但如果dockerfile中也有CMD指令,CMD中的参数会被附加到ENTRYPOINT 指令的后面。 如果这时docker run命令带了参数,这个参数会覆盖掉CMD指令的参数,并也会附加到ENTRYPOINT 指令的后面。
这样当容器启动后,会执行ENTRYPOINT 指令的参数部分。
可以看出,相对来说ENTRYPOINT指令优先级更高。
我们来看个例子,下面是Dockerfile的内容
#test FROM ubuntu MAINTAINER hello RUN echo hello1 > test1.txt RUN echo hello2 > /test2.txt EXPOSE 80 ENTRYPOINT ["echo"] CMD ["defaultvalue"]
假设通过该Dockerfile构建的镜像名为 myimage。
1、当运行 docker run myimage 输出的内容是 defaultvalue,可以看出CMD指令的参数得确是被添加到ENTRYPOINT指令的后面,然后被执行。
2、当运行docker run myimage hello world 输出的内容是 hello world ,可以看出docker run命令的参数得确是被添加到ENTRYPOINT指令的后面,然后被执行,这时CMD指令被覆盖了。
3、另外我们可以在docker run命令中通过 --entrypoint 覆盖dockerfile文件中的ENTRYPOINT设置,如:
docker run --entrypoint="echo" myimage good 结果输出good
注意,不管是哪种方式,创建容器后,通过 dokcer ps查看容器信息时,COMMOND列会显示最终生效的启动命令。
相关文章推荐
- 关于Docker官方CentOS镜像无法启动mysqld的总结
- 分析Mysql 5.6的Dockerfile
- 关于Docker目录挂载的总结
- 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像
- Docker命令详解
- Docker——image与container
- Docker镜像
- Docker Hub仓库注册,使用
- 利用Docker Hub上的Nginx部署Web应用
- docker-registry 搭建私有仓库服务器
- centos7下安装使用docker
- CentOS7安装docker 启动不了解决篇
- linux 构建 docker 网络
- 技术干货 | Docker容器中需要避免的十种常见误区
- docker学习笔记11:Dockerfile 指令 CMD介绍
- 用浏览器管理 Docker
- docker 安装跟基本操作
- 使用 Docker 容器应该避免的 10 个事情
- docker 配置hadoop问题
- 使用Docker构建持续集成与自动部署的Docker集群