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:latest
LABEL 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 | 清除数据卷 |