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

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

被折叠的 条评论
为什么被折叠?



