| Dockerfile 指令 |
说明 |
| FROM |
指定基础镜像,用于后续的指令构建。 |
| MAINTAINER |
指定Dockerfile的作者/维护者。(已弃用,推荐使用LABEL指令) |
| LABEL |
添加镜像的元数据,使用键值对的形式。 |
| RUN |
在构建过程中在镜像中执行命令。 |
| CMD |
指定容器创建时的默认命令。(可以被覆盖) |
| ENTRYPOINT |
设置容器创建时的主要命令。(不可被覆盖) |
| EXPOSE |
声明容器运行时监听的特定网络端口。 |
| ENV |
在容器内部设置环境变量。 |
| ADD |
将文件、目录或远程URL复制到镜像中。 |
| COPY |
将文件或目录复制到镜像中。 |
| VOLUME |
为容器创建挂载点或声明卷。 |
| WORKDIR |
设置后续指令的工作目录。 |
| USER |
指定后续指令的用户上下文。 |
| ARG |
定义在构建过程中传递给构建器的变量,可使用 “docker build” 命令设置。 |
| ONBUILD |
当该镜像被用作另一个构建过程的基础时,添加触发器。 |
| STOPSIGNAL |
设置发送给容器以退出的系统调用信号。 |
| HEALTHCHECK |
定义周期性检查容器健康状态的命令。 |
| SHELL |
覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT指令。 |
以Mariadb为例
vim Dockerfile-mariadb
# -------------------------------------------------------------------
FROM centos:centos7.9.2009
# FROM指令是Dockerfile的第一条指令,用于指定构建新镜像所基于的基础镜像
# centos:centos7.9.2009 表示使用CentOS 7.9.2009版本作为基础镜像
# -------------------------------------------------------------------
MAINTAINER Chinaskills
# MAINTAINER指令用于指定镜像的维护者信息(姓名、邮箱等)
# -------------------------------------------------------------------
RUN rm -rfv /etc/yum.repos.d/*
# RUN指令用于在镜像构建过程中执行命令
# 这里就是在镜像构建过程中执行 rm -rfv /etc/yum.repos.d/*
# -------------------------------------------------------------------
COPY local.repo /etc/yum.repos.d/
# COPY指令用于将本地文件复制到镜像中
# 这里就是将本地的 local.repo 文件复制到镜像中的 /etc/yum.repos.d/ 目录下
# -------------------------------------------------------------------
COPY yum /root/yum
# -------------------------------------------------------------------
ENV LC_ALL en_US.UTF-8
# ENV指令用于设置环境变量
# LC_ALL=en_US.UTF-8 设置系统的本地化环境变量
# -------------------------------------------------------------------
RUN yum -y install mariadb-server
COPY init.sh /opt/
RUN bash /opt/init.sh
# -------------------------------------------------------------------
EXPOSE 3306
# EXPOSE指令用于声明容器运行时监听的端口
# 3306是MySQL/MariaDB数据库的默认端口
# -------------------------------------------------------------------
CMD ["mysqld_safe","--user=root"]
# CMD指令指定容器启动时默认执行的命令
# 这个命令会在容器启动时执行,启动MariaDB数据库服务