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