Dockerfile
作用:用来定制镜像的脚本
Dockerfile 是一个文本文件,其内容包含一条条的指令(Instruction),每一条执行构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
在一个空白目录下,创建文本文件 Dockerfile
,并在其中输入如下内容:
FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
构建镜像
在 Dockerfile
文件所在目录执行:
docker build -t nginx:v1 .
==注意==:docker build 命令最后一个 .
。这个 .
表示当前目录,并且这个.
所代表的路劲 是一个上下文(Context)
首先理解几个默认的事实:
- 不额外指定 Dockerfile 的话,默认下会将 上下文目录中的名为 Dockerfile 的文件作为 Dockerfile。可以通过
-f
参数指定任意路径下Dockerfile - Dockerfile文件的名字不一定是Dockerfile,只是大家习惯性的会使用默认的文件名Dockerfile而已
而这里的上下文目录的指定,是要告诉给 docker build 命令,需要将这个上下文目录下的文件打包给 Docker引擎中。即 docker 命令操作属于 C/S 架构的命令操作。
在上下文目录中,可以通过 .dockerignore
(与.gitignore
一样的语法),来剔除在上下文目录下不需要传递给Docker引擎的文件。
Dockerfile 指令
COPY 复制文件
ADD 更高级的复制文件
CMD 容器启动命令
ENTRYPOINT 入口点
ENV 设置环境变量
ARG 构建参数
VOLUME 定义匿名卷
EXPOSE 生命端口
WORKDIR 指定工作目录
USER 指定当前用户
HEALTHCHECK 健康检查
ONBUILD 为他人作嫁衣裳