
Dockerfile可以认为是Docker镜像的描述文件,是由一系列命令和参数构成的教程,主要作用是用来构建docker镜像的构建文件。

| 保留字 | 作用 |
|---|---|
| FROM | 当前镜像是基于哪个镜像的 第一个指令必须是FROM |
| MAINTAINER | 镜像维护者的姓名和邮箱地址 |
| RUN | 构建镜像时需要运行的指令 |
| EXPOSE | 当前容器对外暴露出的端口号 |
| WORKDIR | 指定在创建容器后,终端默认登录进来的工作目录,一个落脚点 |
| ENV | 用来在构建镜像过程中设置环境变量 |
| ADD | 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar包 |
| COPY | 类似于ADD,拷贝文件和目录到镜像中 将从构建上下文目录中<原路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置 |
| VOLUME | 容器数据卷,用于数据保存和持久化工作 |
| CMD | 指定一个容器启动时要运行的命令 Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被dockerrun之后的参数替换 |
| ENTRYPOINT | 指定一个容器启动时要运行的命令 ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及其参数 |
FROM FROM [:tag] 使用版本不写为latestFROM [@] 使用摘要MAINTAINER RUN <command>
(shell form, thecommand is run in a shell, which by default is /bin/sh -c on Linux or cmd /S /C on Windows)
RUN echo hello
RUN ["executable","param1""param2"] (exec form)
RUN [" /bin/bash","-c""echo hello"]
EXPOSE 80/tcp 如果没有显示指定则默认暴露都是tcpEXPOSE 80/udpWORKDIR /path/to/workdir
WORKDIR /a
WORKDIR b
WORKDIR C
注意:WORKDIR指令可以在Dockerfile中多次使用。如果提供了相对路径,则该路径将与先前WORKDIR指令的路径相对
ENV ENV = ADD hom* /mydir/ 通配符添加多个文件
ADD hom?.txt /mydir/ 通配符添加
ADD test.txt relativeDir/ 可以指定相对路径
ADD test.txt /absoluteDir/ 也可以指定绝对路径
ADD url
COPY src dest
COPY ["" ,.... "" ]
VOLUME 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)docker run xxxx ls /ENTRYPOINT ["executable""param1"" param2" ]ENTRYPOINT command param1 param21、准备好SpringBoot项目的jar包
2、把jar包上传到服务器
3、编写Dockerfile
FROM openjdk:8
WORKDIR /[目录名]
ADD xxx.jar /[目录名]
EXPOSE [项目端口号]
ENTRYPOINT ["java","-jar"]
CMD ["xxx.jar"]
4、构建镜像
docker buile -t xxx .
5、运行镜像
docker run -p [端口号]:[端口号] xxx