0
点赞
收藏
分享

微信扫一扫

​Dockerfile

Dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。

1. 对于开发人员:可以为开发团队提供一个完全一致的开发环境;

2. 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了;

3. 对于运维人员:在部署时,可以实现应用的无缝移植。

常用命令

命令

作用

FROM image_name:tag

定义了使用哪个基础镜像启动构建流程

MAINTAINER user_name

声明镜像的创建者或维护者信息

ENV key value

设置环境变量(可以写多条)

格式为:ENV key value  

例如:ENV JAVA_HOME /path/to/java

RUN command

是Dockerfile的核心部分(可以写多条)

格式:RUN <command>

    在shell终端运行,使用这种格式,就像直接在命令行中输入命令一样。

      RUN [“executable”,”param1”,”param2”]

    使用exec 执行,这种方式类似于函数调用。该方式必须使用双引号,不能使用单引号,因为该方式会被转换成JSON数组

ADD source_dir/file dest_dir/file

将宿主机的文件复制到容器内,如果是压缩文件,将会在复制后自动解压

COPY source_dir/file  dest_dir/file

和ADD相似,但是如果是压缩文件并不能解压

WORKDIR path_dir

设置工作目录,也可说是切换目录指令,类似cd命令,写在该指令后的RUN,CMD以及ENTRYPOINT指令都将该目录作为当前目录,并执行相应命令

ARG 设置构建参数

ARG指令用于设置构建参数,类似EVN,和ENV不同的是,ARG设置的是构建时的环境变量,在容器运行时是不会存在这些变量的

CMD 容器启动命令

用于为执行容器提供默认值。每个Dockerfile只有一个CMD命令,如果指定多个CMD命令,那么只有最后一条会被执行,如果启动容器时指定了运行的命令,则会覆盖CMD指定的命令。支持3种格式:

CMD [“executable”,”param1”,”param2”] (推荐)

CMD [“param1”,”param2”](为ENTYRPOINT指令提供预设参数)

实例:CMD echo “this is a test.” | wc -

ENTRYPOINT入口点

ENTRYPOIN和CMD命令的目的一样,都是指定docker容器启动时执行的命令,可以多次设置,但是只有最后一个有效

EXPOSE声明暴露的端口

EXPOSE指令用于声明在运行时容器提供服务的端口,格式为:

EXPOSE <port> [<port>...]   可以声明暴露多个端口

需要注意的是,这只是一个声明,运行时并不会因为该声明就打开相应的端口。该指令的作用主要是帮助镜像使用者理解该项服务的守护端口;其次是当运行时使用随机映射时,会自动映射EXPOSE的端口。

举报

相关推荐

0 条评论