DockerFile
- 用来构建Docker镜像的文本文件,是由构建镜像素偶许的指令和参数构成的脚本
构建步骤
- 编写DockerFile文件
- docker build命令构建镜像
- docker run依镜像运行容器实例
基础
- 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
- 指令按照从上到下,顺序执行
- #注释
- 每条指令都会创建一个新的镜像层并对镜像进行提交
常用保留字指令
- FROM 基础镜像,当前镜像是基于哪个镜像的
- RUN 容器构建时需要运行的命令【shell/exec】
- EXPOSE 当前容器对外暴露的窗口
- WORKDIR 指定在创建容器互殴,终端默认登陆进来的工组目录
- ENV 运行环境变量,这个环境变量可以在后续任何RUN指令中使用
- COPY
- ADD 将宿主机目录下的文件拷贝进镜像并自动解压【copy+解压】
- CMD 指定容器启动后要干的事情,可有多个但只有最后一个生效,CMD会被docker run后的参数替代,CMD在run时运行,RUN在构建时运行
- VOLUME 容器卷
- ENTRYPOINT 指定一个容器启动时要运行的命令,类似CMD但不会被run覆盖,可以和C MD一起用,一般是变参才会使用CMD,CMD是在给ENTRYPOINT传参
Docker执行Dockerfile的大致流程:
- docker从基础镜像运行一个容器
- 执行一条指令并对容器进行修改
- 执行类似docker commit的操作提交一个新的镜像【每条docker指令都是一层镜像,层层镜像最终形成最后的使用镜像【花卷】】
- docker再基于刚提交的镜像运行一个新容器
- 执行dockerfile中的下一条指令直到所有指令执行完毕
dockerfile面向开发,docker镜像成为交付标准,docker容器则涉及部署运维
构建
- docker build -t 新镜像名字:TAG.【TAG版本后有个.】
运行
学习视频fromB站尚硅谷