下列关于网站开发中网页上传,wordpress卡密支付插件,商丘网上房地产查询系统,接外贸订单的平台什么是Dockerfile
Dockerfile可以认为是Docker镜像的描述文件#xff0c;是由一系列命令和参数构成的教程#xff0c;主要作用是用来构建docker镜像的构建文件。
Dockerfile解析过程 Dockerfile的保留命令
保留字作用FROM当前镜像是基于哪个镜像的 第一个指令必须是FROMMA…
什么是Dockerfile
Dockerfile可以认为是Docker镜像的描述文件是由一系列命令和参数构成的教程主要作用是用来构建docker镜像的构建文件。
Dockerfile解析过程 Dockerfile的保留命令
保留字作用FROM当前镜像是基于哪个镜像的 第一个指令必须是FROMMAINTAINER镜像维护者的姓名和邮箱地址RUN构建镜像时需要运行的指令EXPOSE当前容器对外暴露出的端口号WORKDIR指定在创建容器后终端默认登录进来的工作目录一个落脚点ENV用来在构建镜像过程中设置环境变量ADD将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar包COPY类似于ADD拷贝文件和目录到镜像中将从构建上下文目录中原路径的文件/目录复制到新的一层的镜像内的目标路径位置VOLUME容器数据卷用于数据保存和持久化工作CMD指定一个容器启动时要运行的命令Dockerfile中可以有多个CMD指令但只有最后一个生效CMD会被dockerrun之后的参数替换ENTRYPOINT指定一个容器启动时要运行的命令ENTRYPOINT的目的和CMD一样都是在指定容器启动程序及其参数
FROM
基于哪个镜像进行构建新的镜像在构建时会自动从docker hub拉取base镜像必须作为Dockerfile的第一个指令出现语法 FROM image FROM iamge[:tag] 使用版本不写为latest FROM iamge[digest] 使用摘要
MAINTAINER
镜像维护者的姓名和邮箱地址[不推荐使用了]语法 MAINTAINER name
RUN
RUN指令将在当前映像之上的新层中执行任何命令并提交结果。生成的提交映像将用于Dockerfile中的下一步语法
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 helloRUN [executable,param1param2] (exec form)
RUN [ /bin/bash,-cecho hello]EXPOSE
用来指定构建的镜像在运行为容器时对外暴露的端口语法 EXPOSE 80/tcp 如果没有显示指定则默认暴露都是tcp EXPOSE 80/udp
WORKDIR
用来为Dockerfile中的任何RUN、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录。如果WORKDIR不存在即使它没有在任何后续Dockerfile指令中使用它也将被创建。语法
WORKDIR /path/to/workdirWORKDIR /a
WORKDIR b
WORKDIR C
注意:WORKDIR指令可以在Dockerfile中多次使用。如果提供了相对路径则该路径将与先前WORKDIR指令的路径相对ENV
用来为构建镜像设置环境变量。这个值将出现在构建阶段中所有后续指令的环境中。语法 ENV key value ENV keyvalue
ADD
用来从context上下文复制新文件、目录或远程文件url并将它们添加到位于指定路径的映像文件系统中。语法
ADD hom* /mydir/ 通配符添加多个文件
ADD hom?.txt /mydir/ 通配符添加
ADD test.txt relativeDir/ 可以指定相对路径
ADD test.txt /absoluteDir/ 也可以指定绝对路径
ADD urlCOPY
用来将context目录中指定文件复制到镜像的指定目录中语法
COPY src dest
COPY [src,.... dest]VOLUME
用来定义容器运行时可以挂载在宿主机的目录。如果不指定则任何目录都不能挂载成功。语法 VOLUME
CMD
用来为启动的容器指定执行的命令在Dockerfile中只能有一条CMD指令。如果列出多个命令则只有最后一个命令才会生效。注意Dockerfile中只能有一条CMD指令。如果列出多个命令则只有最后一个命令才会生效。语法 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)在启动容器的时候可以在启动命令的后面追加指令这样就可以覆盖CMD指令 例如 docker run xxxx ls /
ENTRYPOINT
用来指定容器启动时执行命令和CMD类似语法 ENTRYPOINT [executableparam1 param2 ] ENTRYPOINT command param1 param2ENTRYPOINT指令往往用于设置容器启动后的第一个命令这对一个容器来说往往是固定的。CMD指令往往用于设置容器启动的第一个命令的默认参数这对一个容器来说可以是变化的
基于Dockerfile构建SpringBoot项目
1、准备好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