Dockerfile文件

316 阅读2分钟

Dockerfile文件分为四部分:基础镜像信息,维护者信息,操作指令,容器启动执行指令。

基础镜像信息

eg:

# 1、第一行必须指定 基础镜像信息
# 这里指定基础镜像为 ubuntu
FROM ubuntu

docker ci服务根据这条指令拉取镜像作为一次层。

维护者信息

# 2、维护者信息
MAINTAINER docker_user 

操作指令

# 3、镜像操作指令
RUN apt-get update && apt-get install -y nginx

当拉取完基础镜像后,镜像就会执行我们编写的指令

每一条运行指令将会增加一层次

容器启动执行指令

# 4、容器启动执行指令
CMD ["nginx","-g","daemon off;"]

完整的Dockerfile

FROM ubuntu
MAINTAINER withqianqian
RUN apt-get update && apt-get install -y nginx
EXPOSE 80
CMD ["nginx","-g","daemon off;"]

在dockerfile目录下执行 docker build -t mynginx .

image.png

启动自己制作的nginx容器 docker run -d -p 80:80 mynginx

在浏览器访问localhost 就能看到效果了。

构建时缓存

Dockerfile文件中的每条指令会被独立执行,并会创建一个中间镜像,当重新生成新的镜像时会运用缓存中的中间镜像来加快镜像的构建。

Dockerfile 指令

  • ENTRYPOINT 用于给容器配置一个可执行程序
  • LABEL 用于为镜像添加元数据
  • EXPOSE 用于指定容器在运行时监听的端口
  • ENV 用于设置环境变量
  • ADD 用于复制构建环境中的文件或目录到镜像中
  • COPY 同样用于复制构建环境中的文件或目录到镜像中
  • VOLUME 用于创建挂载点
  • USER 用于指定运行镜像所使用的用户
  • WORKDIR 用于在容器内设置一个工作目录
  • ARG 用于指定传递给构建运行时的变量
  • ONBUILD 用于设置镜像触发器
  • STOPSIGNAL 用于设置停止容器所要发送的系统调用信号
  • SHELL 用于设置执行命令(shell式)所使用的的默认shell类型

总结

以上就Dockerfile基础的东西,大家多多练习熟练使用。