网站建设与运营公司市场开方案,大学生50个创新产品设计,自己做网站需不需要钱,西安做网站建设的公司CMD和ENTRYPOINT的作用 CMD和ENTRYPOINT这两个命令#xff0c;我接触到的是用在了Dockerfile中用于构建容器。
CMD#xff1a;The main purpose of a CMD is to provide defaults for an executing container. CMD的主要用途是为正在执行的容器提供默认值。也就是指定这个容…CMD和ENTRYPOINT的作用 CMD和ENTRYPOINT这两个命令我接触到的是用在了Dockerfile中用于构建容器。
CMDThe main purpose of a CMD is to provide defaults for an executing container. CMD的主要用途是为正在执行的容器提供默认值。也就是指定这个容器启动的时候要运行的命令。
ENTRYPOINT也是指定这个容器启动的时候要运行的命令。
CMD语法
The CMD instruction has three forms:CMD [executable,param1,param2] (exec form, this is the preferred form)
CMD [param1,param2] (as default parameters to ENTRYPOINT)
CMD command param1 param2 (shell form)Dockerfile中只有一条CMD指定如果列出多个只有最后一个CMD才会生效。 CMD的主要目的是为正在执行的容器提供默认值。这些默认值可以包括可执行问卷也可以省略可执行问卷在这种情况下必须指定给一条ENTRYPOINT指令。
ENTRYPOINT语法
ENTRYPOINT 有两种形式exec形式这是首选形式ENTRYPOINT [executable, param1, param2]
外壳形式ENTRYPOINT command param1 param2
与CMD类似再Dockerfile中只有一条ENTRYPOINT指定如果列出多个只有最后一个ENTRYPOINT生效。
CMD与ENTRYPOINT的区别
docker run后面的参数会将CMD指定的参数进行覆盖。
ENTRYPOINT与CMD的区别是不可以被docker run 后的参数覆盖会把docker run后面的参数传递给ENTRYPOINT指定的参数。
案例 使用使用Dockerfile构建centos镜像再Dockerfile中使用CMD和ENTRYPOINT。当docker run 参数的时候进行CMD 和ENTRYPOINT的测试CMD指定的参数是否会被覆盖以及ENTRYPOINT指定的参数是否会最佳docker run后面的参数。
测试CMD
1.创建一个名为dockerfile-centos-test的文件再编写dockerfile文件。
# 编写dockerfile文件
$ vim dockerfile-centos-test
FROM centos
CMD [ls,-a] #再容器运行的时候列出所有目录
# 构建镜像
$ docker build -f dockerfile-centos-test -t cmd-test:0.1 .
# 运行镜像
$ docker run cmd-test:0.1列出了所有目录 2.这个时候我们再追加一个命令-l 变成ls-al 出现错误再CMD的情况加-l 替换了CMD[“ls”,“-l”].由于-l不是命令所以报错。
3.我们再输入docker run cmd-test:0.1 ls 这个时候就执行成功了。验证了 docker run时输入的命令会替换掉CMD的命令
测试ENTRYPOINT
和之前测试CMD一样
#创建一个文件docker-test-entrypoint
#编写dockerfile文件
$ vim docker-test-entrypoint
FROM centos
ENTRYPOINT [ls,-a]
#构建镜像
$ docker build -f docker-test-entrypoint -t entrypoint-test:0.1 .
#运行镜像
$ docker run entrypoint-test:0.1
这个时候追加一个命令-l 成为ls-al
powershell
# 想追加一个命令 -l 成为ls -al
$ docker run cmd-test:0.1 -l总结一下
CMD的情况下 -l 替换了CMD的ls -a。
而ENTRYPOINT的情况下-l 追加到了ls -a 的后面 变成了ls -al。