DockerFile文件中各个指令的含义

什么是dockerfile?

Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。

docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。

例:

docker build -f /path/to/a/Dockerfile

Dockerfile的基本结构

Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。

Dockerfile文件说明

Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以字符开头则被视为注释。可以在Docker文件中使用RUNCMDFROMEXPOSEENV等指令。

在这里列出了一些常用的指令。
 

1.FROM:指定基础镜像,必须为第一个命令

MAINTAINER: 维护者信息

RUN:构建镜像时执行的命令

ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget

COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源

CMD:构建容器后调用,也就是在容器启动时才进行调用。

ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。

LABEL:用于为镜像添加元数据

ENV:设置环境变量

EXPOSE:指定于外界交互的端口

VOLUME:用于指定持久化目录

WORKDIR:工作目录,类似于cd命令

USER:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户

ARG:用于指定传递给构建运行时的变量

ONBUILD:用于设置镜像触发器

 

最后用一张图解释常用指令的意义^-^

### 如何在 Linux 系统上编写和创建 Dockerfile 文件 Dockerfile 是一种用于定义 Docker 镜像构建过程的脚本文件。它由一系列指令组成,这些指令按照特定顺序被执行以生成最终的镜像。以下是关于如何在 Linux 中创建并使用 Dockerfile 的详细介绍。 #### 创建 Dockerfile 要在 Linux 上创建 Dockerfile,可以使用任何文本编辑器完成此操作。例如,可以通过 `vi` 或者 `nano` 编辑器来创建: ```bash vi Dockerfile ``` 或者, ```bash nano Dockerfile ``` 需要注意的是,Dockerfile 文件名通常是大写的 “Dockerfile”,这是惯例以便于识别[^2]。 #### Dockerfile 的基本结构 Dockerfile 主要由以下几个部分构成: 1. **FROM**: 定义基础镜像。 2. **RUN**: 执行命令,通常用来安装软件包。 3. **COPY/ADD**: 将本地文件复制到容器中。 4. **CMD/ENTRYPOINT**: 容器启动默认执行的命令或程序。 5. **EXPOSE**: 声明容器运行监听的网络端口。 6. **WORKDIR**: 设置工作目录。 7. **ENV**: 设置环境变量。 8. **ONBUILD**: 当所构建的镜像被用作其他镜像的基础镜像触发的操作[^3]。 #### 实际例子 下面是一个简单的 Dockerfile 示例,基于 CentOS 构建一个 Nginx 服务的镜像: ```dockerfile # 使用官方 CentOS 作为基础镜像 FROM centos:7 # 更新系统并安装 nginx RUN yum update -y && \ yum install -y epel-release && \ yum install -y nginx # 暴露 80 和 443 端口 EXPOSE 80 443 # 设置工作目录 WORKDIR /usr/share/nginx/html # 复制当前目录下的 index.html 到容器的工作目录 COPY index.html . # 默认启动命令 CMD ["nginx", "-g", "daemon off;"] ``` 上述示例展示了如何通过 RUN 指令更新系统以及安装必要的软件;通过 EXPOSE 指令暴露端口;通过 COPY 指令将宿主机上的文件拷贝至容器内部;最后 CMD 指定了容器启动后的默认行为[^4]。 #### 构建镜像 保存并关闭 Dockerfile 后,在同一目录下运行以下命令即可构建镜像: ```bash docker build -t my-nginx-image . ``` 其中 `-t` 参数指定了新镜像的名字,`.` 表示 Dockerfile 所在路径[^1]。 #### 总结 以上就是在 Linux 系统中创建和编译 Dockerfile 的方法概述。理解各个关键字的作用对于成功构建自定义镜像是非常重要的。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值