CMD
[
"bash"
,
"-c"
,
"./start.sh start && tail -f /dev/null"
]
FROM CentOSxxx:latest
基础镜像,带有java环境
COPY myproject /opt/myproject
将项目拷贝到容器的myproject目录下,注意COPY将目标文件的内容拷贝,不包括目录,所以需要创建一个目录
RUN chmod 777 /opt/myproject/start.sh
搭建镜像时运行该指令,使目标文件权限被修改为777(可读可写可执行)
EXPOSE 8080
容器暴露8080端口
WORKDIR /opt/myproject
进入容器时,设置CMD指令的路径
CMD [“bash”,"-c","./start.sh start && tail -f /dev/null"]
容器被创建时,执行start.sh脚本,如果容器执行该脚本后容器退出,则可以加
tail -f /dev/null
。
docker build -t myimage .
docker run -itd --name mycontainer -p 8080:8080 myimage
Dockerfile文件FROM mplat:1.0COPY myproject /opt/myprojectRUN chmod 777 /opt/myproject/start.shEXPOSE 8080WORKDIR /opt/myprojectCMD ["bash","-c","./start.sh start && tail -f /dev/null"]
Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等。当前目录下包含Dockerfile,使用命令build来创建新的image,并命名为edwardsbean/centos6-jdk1.7:
docker build -t edwardsbean/centos6-jdk1.7 .
文章目录Docker一、Dockerfile1. 概述2. 指令3. 创建一个简单的Dockerfile4、通过Dockerfile创建一个自己的centos5. CMD和ENTRYPOINT指令的区别二、创建tomcat镜像三、发布镜像到DockerHub四、发布到阿里云容器服务
Docker
一、Dockerfile
1. 概述
用来构建docker镜像的构建文件,通过命令脚本生成镜像。
2. 指令
FROM 构建镜像的基础镜像从哪来
MAINTAINER 镜像是谁写的:姓名
CMD [“executable”,”param1”,”param2”] (exec form, 首选格式)
CMD [“param1”,”param2”] (作为ENTRYPOINT的默认参数)
CMD command param1 param2 (shell form)
Dockerfile 的 CMD 可以使用 shell 脚本,只需要在 Dockerfile 中指定 CMD 命令时,将 shell 脚本的路径作为参数传递给 CMD 命令即可。
例如,如果要在容器启动时执行名为 "start.sh" 的 shell 脚本,可以在 Dockerfile 中将 CMD 命令指定为:
CMD ["sh", "/path/to/start.sh"]
其中 "/path/...
本文转载于:【docker】CMD ENTRYPOINT 区别 终极解读!
因为写得很好,所以转载一下,做一个记录,如果有冒犯之处,还望联系我删除。
首先上docker官网:https://docs.docker.com/engine/reference/builder/#cmd
感觉官网关于这两个命令讲的简直不要太清楚。
cmd:
这个命令是用来做什么的?下面是官网的答案:
The main purpose of a CMD is to provide defaults for an executing