最近一直和docker打交道,docker官网也提供了很多的命令,今天来详细的学习dockerfile中的指令。docker官网dockerfile指令详解
什么是Dockerfile
Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。对于开发人员,可以为开发团队提供一个完全一致的开发环境;对于测试人员,可以直接拿开发时所创建的镜像或者通过Dockerfile文件构建一个新的镜像开发工作;对于运维人员,在部署的时候,可以实现应用俄无缝移植。
常用命令
命令作用备注
FROM image_name:tag定义了使用哪个基础镜像启动构建流程基础镜像 前提是镜像是存在的 假如不存在就会下载 是必须的 构建的镜像都是基于基础镜像的MAINTAINER user_name声明镜像的创建者选填ENV key value设置开发环境 可以设置多个比如设置path等RUN command是Dockerfile的核心部署 可以写多条命令比如复杂的话直接将命令直接写一个sh脚本 然后run 这个脚本ADD source_dir/file dest_dir/file添加一个文件从原路径/文件到目标路径文件 压缩文件会自动解压COPY source_dir/file dest_dir/file复制一个文件从原路径到目标路径压缩文件不会自动解压WORKDIR工作目录也就是登录容器之后也是这个目录。比如copy命令中的原路径和目标路径 是相对路径 也就是相对于工作目录而言的EXPOSE能够让运维人员知道开启了那些端口ENTRYPOINT正统地用于定义容器启动以后的执行体,容器的入口支持命令行和shell,比如我们定义一个启动的boot.sh脚本 可以直接ENTRYPOINT /bin/sh bin/boot.sh start 来启动 。在ENTRYPOINT命令后面再加run命令 /copy命令等都是不执行的,它就是容器启动的最后的命令了。有一次修改Dockerfile文件 直接在ENTRYPOINT命令后面加了一个Copy的命令 然后copy命令不生效 被自己蠢哭名称Dockerfile必须叫Dockerfile首字母要大写!!!!