一、什么是dockerfile
1.Dockerfile是Image镜像的描述文件 2.dockerfile内容详解 ``` #利用FROM命令设置基准镜像 FROM tomcat:latest #cd /usr/local/tomcat/webapps WORKDIR /usr/local/tomcat/webapps #ADD用于复制本地文件到镜像中 ADD docker-web ./docker-web ``` 它的作用是对我们的镜像进行描述,描述我们的镜像到底要做哪些工作,在这个文件中它书写了一系列的指令,通过这些指令docker就知道我们如果要安装一个tomcat,需要哪几步,安装 一个redis需要哪几步,这非常像我们linux中的shell脚本或者是windows中的bat。
二、Dockerfile基础指令
1.from-基于基准镜像 from centos #制作基准镜像 from scratch #不依赖任何基准镜像 base image from tomcat: 9.0.22-jdk8-openjdk 尽量使用官方提供的Base Image 2.label-说明信息(注释) label maintainner='caiweiwei' label version='10' label description='caiweiwei应用' 3.workdir-设置工作目录 workdir /usr/local workdir /usr/local/caiweiwei #自动创建 尽量使用绝对路径 4.add & copy-复制文件 add hell / #复制到根路径 add test.tar.gz / #添加根目录并解压 add除了复制,还具备添加远程文件功能 5.env-设置环境常量 env java_home /usr/local/openjdk8 run${java_home}/bin/java -jar test.jar 尽量使用环境常量,可提高程序维护性 6.expose -暴露容器端口 expose 8080 expose 3306 将容器内部端口暴露给物理机
三、Dockerfile运行指令
1.RUN :在build构建时执行命令 run yum install -y vim #Shell命令格式 run["yum","install","-y","vim"] #Exec命令格式 2.entrypoint: 容器启动时执行的命令 entrypoint(入口点)用于容器启动时执行命令 dockerfile中只有最后一个entryfile会被执行 entrypoint["ps"] #推荐使用Exec格式 3.cmd: 容器启动后执行默认的命令或参数 cmd用于设置默认执行的命令 如果dockerfile中出现多个cmd,则只有最后一个被执行 如容器启动是附加指令,则cmd被忽略 cmd["ps","-ef"] #推荐使用Exec格式