文章目录

  • 什么是DockerFile
  • 构建过程
  • 执行DockerFile大致流程
  • 常用保留字
  • DockerFile小案例
  • 创建dockerfile文件
  • dockerfile内部脚本
  • 执行命令
  • 虚悬镜像


什么是DockerFile

DockerFile 使用来构建Docker镜像的文本文件,是由一条条构建镜像所需要的指令和参数组成脚本

在docker安装VIM vim dockerfile_linux

构建过程

  1. 保留字指令必须大写且至少跟随一个参数
  2. 指令从上到下执行
  3. # 标识注释
  4. 每条指令都会创建一个新的镜像层并对镜像进行提交

执行DockerFile大致流程

  1. docker从基础镜像运行一个容器
  2. 执行一条指令并对容器做出修改
  3. 执行类似 docker commit 的操作提交一个新的镜像层
  4. docker 再基于刚提交的镜像运行一个新容器
  5. 执行 dockerfile 中的下一条指令直到指令执行完成

在docker安装VIM vim dockerfile_linux_02

常用保留字

保留字

含义

FROM

基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是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