Dockerfile 语法教程

本文详细介绍了Dockerfile的基础概念,包括镜像、容器和仓库的定义,以及Dockerfile的常用指令如FROM、RUN、CMD等。还讲解了构建镜像的过程和最佳实践,如编写可复用的Dockerfile、避免root用户和优化镜像大小。

Dockerfile 语法教程

Dockerfile 语法教程

基础概念

Dockerfile 简介

Dockerfile 是一个文本文件,其内包含了一系列用户可以调用docker build命令自动构建 Docker 镜像的指令。每一条指令都会在镜像上创建一个新的层,因此每一条指令的内容,都会作为下一次创建新的层的基础。

镜像、容器、仓库的概念

  • 镜像:Docker 镜像是一个只读的模板,包含了创建 Docker 容器(可以运行应用程序)和 Docker 镜像(可以运行容器)所需的所有内容。例如,一个镜像可能包含已安装的应用程序、系统工具、库和配置文件。

  • 容器:Docker 容器是镜像的一个运行实例。您可以使用 Docker API 或 CLI 来创建、启动、停止、移动或删除容器。每个容器都是独立和安全的应用平台。

  • 仓库:Docker 仓库是用来存储和管理 Docker 镜像的地方。您可以通过 Docker Hub 或其他公开的仓库来获取别人共享的镜像,也可以将自己的镜像推送到公开或私有的仓库中供他人使用。

Dockerfile 基本语法

Dockerfile 由一系列的指令组成,每一条指令对应一条命令。下面是一些常用的 Dockerfile 指令:

  • FROM:指定基础镜像。
  • RUN:在镜像内部执行命令。
  • CMD:提供默认的命令,当容器启动时会自动执行。
  • ENTRYPOINT:配置容器启动时运行的命令,与 CMD 不同的是,使用 ENTRYPOINT 指定的命令不会被 shell 覆盖,而 CMD 指定的命令会被 shell 覆盖。
  • ENV:设置环境变量。
  • ADD/COPY:将本地文件添加到镜像中。
  • WORKDIR:设置工作目录。
  • EXPOSE:声明运行时容器提供服务端口。
  • VOLUME:创建一个可以从宿主主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据。

Dockerfile 基本语法

Dockerfile 的基本结构

Dockerfile 是一个文本文件,其内包含了一系列用户可以调用 docker 命令自动构建镜像的指令。一个基础的 Dockerfile 文件通常包括:一个基础镜像信息、维护者信息、镜像操作指令等。

# 基础镜像信息
FROM ubuntu:18.04
# 维护者信息
MAINTAINER Your Name <your.email@example.com>
# 镜像操作指令
RUN apt-get update && apt-get install -y python3

注释的使用

在 Dockerfile 中,可以使用 # 来添加注释。单行注释以 # 开头,直到该行的结束。多行注释使用 /**/ 包围起来。

# 这是一个单行注释
RUN echo "Hello, World!" > /tmp/hello.txt # 这是一行注释内容

/*
这是一个多行注释
可以跨越多行
*/

指令的格式

Dockerfile 的每一行都是一个指令,格式为 instruction argument。例如,RUN 指令用于执行命令,CMD 指令用于指定容器启动时要运行的命令。

RUN apt-get update && apt-get install
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早上真好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值