Dockerfile

一、简介

什么是Dockerfile?

Docker类似于脚本,实现自动化部署环境并生成镜像

镜像构建流程

  • 1、选择基础镜像
  • 2、创建并运行一个容器
  • 3、进入容器
  • 4、部署/搭建环境
  • 5、构造新镜像

Dockerfile就是把上述的镜像构建流程实现脚本自动化

使用准则说明
首字母必须大写
尽量将 Dockerfile 放在空目录中
每个容器尽量只有一个功能
执行的命令越少越好

使用Dockerfile脚本构建镜像的命令

docker build -t <镜像名>:<版本号> <Dockerfile所在的目录>

说明:
•-t指定构建后的镜像信息,默认是以构建后的 docker image 的 id 号为镜像名称

二、基础指令

1、FROM

FROM <image>
FROM <image>:<tag>

说明:FROM 是 Dockerfile 里的第一条而且只能是除了首行注释之外的第一条指令

2、MAINTAINER

MAINTAINER <name>

说明:指定该 dockerfile 文件的维护者信息。类似我 docker commit 时候使用-a参数指定的信息

3、RUN

RUN <command>                                        (shell模式)
RUN ["executable", "param1", "param2"]。            (exec 模式)

说明:表示当前镜像构建时运行的命令
模式格式示例
shell 模式类似于 /bin/bash -c commandRUN echo hello
exec(列表)模式类似于 RUN ["/bin/bash", “-c”, “command”]RUN [“echo”, “hello”]

4、ADD

ADD <src>... <dest>
ADD ["<src>",... "<dest>"]

说明:

  • 将指定的 文件复制到容器文件系统中的
  • src 指的是宿主机,dest 指的是容器
  • 如果源文件是个压缩文件,则docker会自动帮解压到指定的容器中(无论目标是文件还是目录,都会当成目录处理)

5、COPY

COPY <src>... <dest>
COPY ["<src>",... "<dest>"]

说明:单纯复制文件场景,Docker推荐使用COPY

6、WORKDIR

WORKDIR /path/to/workdir            (shell 模式)

说明:

  • 切换目录,为后续的RUN、CMD、ENTRYPOINT 指令配置工作目录,相当于cd

  • 可以多次切换(相当于cd命令),

  • 也可以使用多个WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。

7、EXPOSE

EXPOSE <port> [<port>...]

说明:设置Docker容器对外暴露的端口号,Docker为了安全,不会自动对外打开端口,如果需要外部提供访问,还需要启动容器时增加-p或者-P参数对容器的端口进行分配。

8、ENTRYPOINT

ENTRYPOINT ["executable", "param1","param2"]         (exec 模式)
ENTRYPOINT command param1 param2                      (shell模式)

说明:每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。

posted on 2020-10-09 16:13  yycnblog  阅读(73)  评论(0)    收藏  举报

导航