4.Dockerfile

本文介绍了Dockerfile的基础知识,包括它的构成、构建镜像的三步骤,以及RUN、CMD和ENTRYPOINT等关键命令的用法。Dockerfile是用于创建Docker镜像的脚本,每条指令会创建新的镜像层。注意所有指令需大写,且可以添加注释。此外,文章还计划给出实际案例。

一、简介

1.Dockerfile

Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。

2.构建三步骤

编写Dockerfile文件 --> docker build --> docker run

3.注意事项

1.每条保留字指令都必须为大写字母且后面要跟随至少一个参数。

2.指令按照从上到下,顺序执行。

3.#表示注释。

4.每条指令都会创建一个新的镜像层,并对镜像进行提交。

二、命令

命令描述
FROM基础镜像,当前新镜像是基于哪个镜像的。第一条指令必须为 FROM 指令。
MAINTAINER镜像维护者的姓名和邮箱地址,格式为 MAINTAINER<name>
RUN容器构建时需要运行的命令
CMD指定一个容器启动时要运行的命令。Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换
EXPOSE当前容器对外暴露出的端口。格式为 EXPOSE <port> [<port>...]
WORKDIR指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点。
ENV格式为 ENV 。 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。
ADD格式为 ADD <src> <dest> src 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压为目录)。
COPY格式为 COPY <src> <dest> 。复制本地主机的 <src>(为 Dockerfile 所在目录的相对路径)到容器中的 <dest>
VOLUME格式为 VOLUME ["/data"]。创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
ENTRYPOINT配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。
ONBUILD格式为 ONBUILD [INSTRUCTION],配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。
USER格式为 USER daemon。指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。
格式说明:
RUN

格式为 RUN <command> RUN ["executable", "param1", "param2"]

CMD

支持三种格式

  • CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;
  • CMD command param1 param2/bin/sh 中执行,提供给需要交互的应用;
  • CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;
ENTRYPOINT

两种格式:

  • ENTRYPOINT ["executable", "param1", "param2"]
  • ENTRYPOINT command param1 param2(shell中执行)。
创建镜像docker build

语法:docker build [选项] <上下文路径/URL/->

示例:docker build -t nginx:v3 .

参数:

参数描述
-f指定要使用的Dockerfile路径
-m设置内存最大值
-q安静模式,成功后只输出镜像 ID
--rm设置镜像成功后删除中间容器
-t镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

三、案例

TODO

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值