文章目录
- 什么是DockerFile
- 构建过程
- 执行DockerFile大致流程
- 常用保留字
- DockerFile小案例
- 创建dockerfile文件
- dockerfile内部脚本
- 执行命令
- 虚悬镜像
什么是DockerFile
DockerFile 使用来构建Docker镜像的文本文件,是由一条条构建镜像所需要的指令和参数组成脚本
构建过程
保留字指令
必须大写且至少跟随一个参数- 指令从上到下执行
- # 标识注释
- 每条指令都会创建一个新的镜像层并对镜像进行提交
执行DockerFile大致流程
- docker从基础镜像运行一个容器
- 执行一条指令并对容器做出修改
- 执行类似 docker commit 的操作提交一个新的镜像层
- docker 再基于刚提交的镜像运行一个新容器
- 执行 dockerfile 中的下一条指令直到指令执行完成
常用保留字
保留字 | 含义 |
FROM | 基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板, |
MAINTAINER | 镜像维护者的姓名和邮箱地址 |
RUN | 容器构建时需要运行的命令 |
EXPOSE | 当前容器对外暴露出的端口 |
WORKDIR | 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点 |
USER | 指定该镜像以什么样的用户去执行,如果都不指定,默认为root |
ENV | 用来在构建镜像过程中配置环境变量 |
ADD | 将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包 |
COPY | 将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置 |
VOLUME | 容器数据卷,用于数据保存和持久化工作 |
CMD | 指定一个容器启动时要执行的命令 (会被之后的CMD覆盖) |
ENTRYPOINT | 也是指定一个容器启动时要执行的命令 (不会被之后的CMD覆盖,会将其当作参数) |
DockerFile小案例
需求说明
使原始的centos具备 vim+ifconfig 这两项工具
创建dockerfile文件
vim Dockerfile
dockerfile内部脚本
FROM centos:7
ENV MYPATH /usr/local
WORKDIR $MYPATH
#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD bash
执行命令
在Dockerfile文件目录下执行
# 别落下最后的点
docker build -t centos2:1.1 .
# 查看images
docker images -a
虚悬镜像
如果执行过程中出现错误有可能出现虚悬镜像(仓库和标签号都为 )
我们可以通过以下命令进行删除虚悬镜像
docker image prune
错误有可能出现虚悬镜像(仓库和标签号都为 <none>)
我们可以通过以下命令进行删除虚悬镜像
```shell
docker image prune