通过编写Dockerfile文件,我们可以利用docker来制作自己的镜像文件。命令格式如下:docker build -t 镜像名 dockerfile文件所在文件夹路径
-t表明后面参数是镜像的镜像名。执行完该命令就根据Dockerfile中的配置生成了我们需要的镜像文件。
Dockerfile详解
Dockerfile文件由一个个命令组合而成,其主要命令如下:
- FROM
该命令放到第一行,用来表示集成自哪个一个已存Docker镜像,就像是面向对象语言中的继承一样。- RUN
该命令用于在构建镜像时需要执行的命令,每添加一个RUN命令都会增加一层镜像,因此尽量通过&&
将shell语句连接在一行。- COPY
该命令用于将上下文环境中的文件或文件夹复制到镜像中指定的路径COPY 源路径 目标路径
- ADD
与COPY功能类似,区别在于ADD支持将远程URL的资源添加到镜像中,可以看做是一个增强版的COPY。一般情况下建议使用COPY命令。- CMD
该命令用于指定docker run
启动容器时默认执行的的命令,当Dockerfile中存在多个CMD时,只有最后一个生效。需要注意的是如果docker run
指令后有指定要运行的命令会覆盖CMD中指定的命令。- ENTRYPOINT
该命令功能和CMD类似,但不同的是他不会被docker run
指令后的运行参数所覆盖,而且该参数会被当作命令参数传给ENTRYPOINT,CMD也是一样的效果。- ENV
该命令用来设置环境变量,格式如下:ENV 变量名 变量值
- VOLUME
定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。格式:VOLUME 路径
- EXPOSE
声明容器对外暴露的端口,当使用docker run -P
时会针对该端口进行映射。- WORKDIR
指定当点的工作目录,每一层都会有- ONBUILD
当有新的镜像继承目前要生成的镜像时,ONBUILD设定的命令会执行。