一 Dockerfile 简介
•Dockerfile其实就是根据特定的语法格式撰写出来的一个普通的文本文件
•利用docker build命令依次执行在Dockerfile中定义的一系列命令,最终生成一个新的镜像(定制镜像)
二 Dockerfile 示例与使用
2.1 Dockerfile参考示例
1 2 3 4 5 6 7 8 9 10 11
|
mkdir dockerfile_test cd dockerfile_test vim Dockerfile
|
2.2 Dockerfile使用命令 – docker build
三 Dockerfile 特征
3.2 Dockerfile 构建特征
查看官方的Dockerfile:https://github.com/docker-library/docs
•Dockerfile必须具备一个FROM命令来进行构建
•每一个Dockerfile命令都会构建一层镜像(本质上是每一层都会启动一个容器,执行完命令后,将容器进行提交后,产生新的镜像层)
•通过查看下载下来的镜像,发现历史层信息的层ID是missing,其实是因为原本的层id只存在于构建镜像的宿主机上,一旦转移镜像后,历史层消息中将只保留最新一层的ID
四 Dockerfile 命令概述
4.1 Dockerfile 命令概述(一)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
FROM: 指定基础镜像 RUN: 构建镜像过程中需要执行的命令。可以有多条。docker build CMD:添加启动容器时需要执行的命令。多条只有最后一条生效。可以在启动容器时被覆盖和修改。 ENTRYPOINT:同CMD,但这个一定会被执行,不会被覆盖修改。 :为镜像添加对应的数据。 MLABELAINTAINER:表明镜像的作者。将被遗弃,被LABEL代替。 EXPOSE:设置对外暴露的端口。 ENV:设置执行命令时的环境变量,并且在构建完成后,仍然生效 ARG:设置只在构建过程中使用的环境变量,构建完成后,将消失 ADD:将本地文件或目录拷贝到镜像的文件系统中。能解压特定格式文件,能将URL作为要拷贝的文件 COPY:将本地文件或目录拷贝到镜像的文件系统中。 VOLUME:添加数据卷 USER:指定以哪个用户的名义执行RUN, CMD 和ENTRYPOINT等命令 WORKDIR:设置工作目录 ONBUILD:如果制作的镜像被另一个Dockerfile使用,将在那里被执行Docekrfile命令 STOPSIGNAL:设置容器退出时发出的关闭信号。 HEALTHCHECK:设置容器状态检查。 SHELL:更改执行shell命令的程序。Linux的默认shell是[“/bin/sh”, “-c”],Windows的是[“cmd”, “/S”, “/C”]。
|