0
点赞
收藏
分享

微信扫一扫

Dockerfile 使用教程

老榆 2023-09-01 阅读 65
javadocker

1.Dockerfile

1.1 什么是Dockerfile

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

  • 通过架构图可以看出通过DockerFile可以直接构建镜像

1.2 Dockerfile解析过程

构建镜像步骤:

1)使用:通过命令“touch Dockerfile”创建Dockerfile文件然后在文件里编写命令

    Dockerfile内容要求:

    1.每条保留字指令都必须为大写,且后面都要跟至少一个参数

    2.指令按照从上到下,顺序执行

    3.#表示注释

    4.每条指令都会创建一个新的镜像层,并对镜像进行提交

2)构建命令:“docker build -t 镜像名:版本 Dockerfile所在目录 ”

    如果不想将Dockerfile所在目录的所有文件打包,可以使用 dockerignore过滤

    1.在 Dockerfile所在的目录创建 dockerignore文件

    2.然后在里面编写需要过滤的文件“#”为注释,参考如下:

1.3 Dockerfile的保留命令

官方说明: Dockerfile reference | Docker Docs

保留字

作用

FROM

当前镜像是基于哪个镜像的 第一个指令必须是FROM

MAINTAINER

镜像维护者的姓名和邮箱地址

RUN

构建镜像时需要运行的指令

EXPOSE

当前容器对外暴露出的端口号,仅仅是声明

WORKDIR

指定在创建容器后,终端默认登录进来的工作目录,一个落脚点

ENV

用来在构建镜像过程中设置环境变量

ADD

将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar包

COPY

类似于ADD,拷贝文件和目录到镜像中 将从构建上下文目录中<原路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置

VOLUME

容器数据卷,用于数据保存和持久化工作,仅仅是声明

CMD

指定一个容器启动时要运行的命令 Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换

ENTRYPOINT

指定一个容器启动时要运行的命令 ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及其参数

(1) FROM 命令

  • 基于那个镜像进行构建新的镜像,在构建时会自动从docker hub拉取base镜像 必须作为Dockerfile的第一个指令出现

  • 语法:

(2) MAINTAINER 命令

  • 镜像维护者的姓名和邮箱地址[废弃]

  • 语法:

(3) RUN 命令

  • RUN指令将在当前映像之上的新层中执行任何命令并提交结果。生成的提交映像将用于Dockerfile中的下一步

  • 语法:

(4) EXPOSE 命令

  • 用来指定构建的镜像在运行为容器时对外暴露的端口

  • 语法:

(5) CMD 命令

  • 用来为启动的容器指定执行的命令,在Dockerfile中只能有一条CMD指令。如果列出多个命令,则只有最后一个命令才会生效。

  • 注意: Dockerfile中只能有一条CMD指令。如果列出多个命令,则只有最后一个命令才会生效。

  • 语法:

(6) WORKDIR 命令

  • 用来为Dockerfile中的任何RUN、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录。如果WORKDIR不存在,即使它没有在任何后续Dockerfile指令中使用,它也将被创建。

  • 语法:

(7) ENV 命令

  • 用来为构建镜像设置环境变量。这个值将出现在构建阶段中所有后续指令的环境中。

  • 语法:

  • 坏境变量用法:$变量名称

(8) ADD 命令

  • 用来从context上下文复制新文件、目录或远程文件url,并将它们添加到位于指定路径的映像文件系统中。

  • 语法:

(9) COPY 命令

  • 用来将context目录中指定文件复制到镜像的指定目录中

  • 语法:

(10) VOLUME 命令

  • 用来定义容器运行时可以挂在到宿主机的目录

  • 语法:

(11) ENTRYPOINT命令

  • 用来指定容器启动时执行命令和CMD类似

  • 语法:

    ENTRYPOINT指令,往往用于设置容器启动后的 第一个命令 ,这对一个容器来说往往是固定的。 CMD指令,往往用于设置容器启动的第一个命令的 默认参数 ,这对一个容器来说可以是变化的。

1.4 Dockerfile构建springboot项目部署

1.准备springboot可运行项目

2.将可运行项目放入linux虚拟机中

3.编写Dockerfile

4.构建镜像
5.运行镜像
6.访问项目

http://10.15.0.8:8989/ems/login.html

举报

相关推荐

0 条评论