Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数。其产出为一个新的可以用于创建容器的镜像。
Dockerfile基础
FROM选择镜像#FROM镜像名:标签#使用centos7镜像FROMcentos:7RUN执行shell命令
dockerfile的指令每执行一次都会在docker上新建一层,过多无意义的层会导致镜像过大
以Shell格式执行
#未优化(会创建两层)RUNecho"Hello1"/root/1.txtRUNecho"Hello2"/root/2.txt#优化后(只创建一层)RUNecho"Hello1"/root/1.txt\echo"Hello2"/root/2.txt
以exec格式执行
#RUN["可执行文件或命令","参数1","参数2"]#等同于./auto.shrunRUN["./auto.sh","run"]COPY复制文件
将宿主机的文件或文件夹复制到容器内
#COPY宿主机文件:容器内路径#复制后并重命名,如果路径不存在则会自动创建COPY/root/1.txt/root/m1/2.txt#复制文件夹到容器内并重命名COPY/root/m1//root/m2ADD复制文件
ADD与COPY最大的区别就是ADD可以自动解压tar,gzip,bzip2,etc类型的压缩包,并且ADD可以从网址中下载文件到容器内
#复制宿主机文件到容器内ADD宿主机文件容器内路径#复制宿主机文件夹到容器内ADD宿主机文件夹目录容器内路径#复制并解压文件到容器中ADD宿主机压缩包文件容器内路径#会将1.tar.gz压缩包里的内容解压到/root/目录下ADD/root/1.tar.gz/root/#下载文件到容器中ADD网址容器内路径#将1.txt下载到容器的/root/目录下ADD