Dockerfile文件及指令简介


Dockerfile简介

Dockerfile是根据特定的语法格式撰写出来的一个普通的文本文件,Dockerfile文件中包含了一系列的指令,使用docker build命令依次执行在Dockerfile中定义的一系列指令,可以生成一个定制化的新镜像。

Docker镜像的结构

Docker镜像的分层结构是其轻量级和高效性的关键所在,而这一切的背后都离不开联合文件系统(UnionFS)的支持。UnionFS允许多个文件系统“联合”在一起,对外提供一种单一文件系统的假象。这种设计使得上层文件系统的改动可以被有效地隔离,而不会影响到底层文件系统。这对于Docker容器来说至关重要,因为它允许容器在运行时对文件系统的修改只存在于当前容器内,而不会影响到其他容器或宿主机。

在Docker中,镜像是由多层文件系统叠加构成的。每一层都是一个只读的文件系统,只有最顶层是可读写的。当Docker容器启动时,Docker会创建一个新的可写层作为最顶层,所有的写操作都会在这一层进行。这种设计极大地减少了磁盘空间的使用,因为多个容器可以共享相同的只读层。

docker

Dockerfile的常用指令

Dockerfile文件的内容主要有几个部分组成,包括基础镜像,创建者信息,镜像操作指令,容器启动指令等。

指令 描述
FROM Dockerfile的第一条指令,指明构建自定义镜像的基础镜像。
RUN 构建镜像时,执行RUN后的指令。
ADD 拷贝本机或远程文件至镜像内。
COPY 拷贝本机文件至镜像内。
USER 指定容器启动的用户。
ENTRYPOINT 容器的启动命令。
CMD 指定容器的启动命令或为ENTRYPOINT提供默认启动参数。
ENV 指定容器运行时的环境变量。
ARG 定义外部变量,构建镜像时可以通过ARG传递构建参数。
EXPOSE 指定容器监听的端口。
WORKDIR 为紧随其后的指令设置工作目录。

镜像的构建

Dockerfile文件的名称默认为Dockerfile。

docker

Docker镜像构建命令为:docker build −t 镜像名称:版本 Dockerfile目录。 −t参数指定了镜像的名称与版本号。

docker

发表评论

评论数量:0