一、什么是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格式
网友评论