Dockerfile
 
Dockerfile 是一个用来构建Docker镜像的文本文件,包含了一系列构建镜像所需的指令和参数。
 
指令详解
 
| Dockerfile 指令 | 说明 | 
|---|
| FROM | 指定基础镜像,用于后续的指令构建,必须为第一个命令 | 
| MAINTAINER | 指定Dockerfile的作者/维护者。(已弃用,推荐使用LABEL指令) | 
| LABEL | 添加镜像的元数据,使用键值对的形式。 | 
| RUN | 在构建过程中在镜像中执行命令。 | 
| CMD | 指定容器创建时的默认命令,如果存在多个则仅最后一个生效。(可以被覆盖) | 
| ENTRYPOINT | 设置容器创建时的主要命令。(不可被覆盖) | 
| EXPOSE | 声明容器运行时监听的特定网络端口。 | 
| ENV | 在容器内部设置环境变量。 | 
| ADD | 将文件、目录或远程URL复制到镜像中,tar 类型文件会自动解压(网络压缩资源不会被解压) | 
| COPY | 将文件或目录复制到镜像中,不会自动解压文件,也不能访问网络资源。 | 
| VOLUME | 为容器创建挂载点或声明卷。 | 
| WORKDIR | 设置后续指令的工作目录。 | 
| USER | 指定后续指令的用户上下文。 | 
| ARG | 定义在构建过程中传递给构建器的变量,可使用 “docker build” 命令设置。 | 
| ONBUILD | 当该镜像被用作另一个构建过程的基础时,添加触发器。 | 
| STOPSIGNAL | 设置发送给容器以退出的系统调用信号。 | 
| HEALTHCHECK | 定义周期性检查容器健康状态的命令。 | 
| SHELL | 覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT指令。 | 
 
构建镜像
 
$ docker build -t=tomcat:v1 .
 
用法
 
LABEL
 
# 基本用法
LABEL key=value# 示例
LABEL \com.example.vendor="ACME Incorporated" \com.example.label-without-value \com.example.version="1.0"
# 每个键可以有可选的前缀,通常遵循逆DNS命名约定,例如 com.example.key。
# 这有助于避免命名冲突,并明确标识标签的来源。
 
FROM ubuntu:latestLABEL maintainer="tomy@hbin.com"
LABEL version="1.0"
LABEL description="This is a simple Ubuntu image."RUN apt-get update && apt-get install -y curl
 
- maintainer: 指明了镜像的维护者。
 - version: 提供了镜像的版本号。
 - description: 描述了镜像的用途。
 
 
VOLUME
 
| 命令 | 说明 | 
|---|
| docker volume create | 创建数据卷 | 
| docker volume ls | 查看所有数据卷 | 
| docker volume rm | 删除指定数据卷 | 
| docker volume inspect | 查看某个数据卷详情 | 
| docker volume prune | 清除数据卷 |