dockerfile

一、简介

1、Dockerfile其实就是根据特定的语法格式撰写出来的一个普通的文本文件

2、利用docker build命令依次执行在Dockerfile中定义的一系列命令,最终生成一个新的镜像(定制镜像)

二、Dockerfile示例与使用

1、Dockerfile参考示例

①创建目录:mkdir dockerfile_test

②进入目录:cd dockerfile_test

③打开文件:vim Dockerfile

# Test
# VERSION   0.01
FROM ubuntu
RUN echo 'hello world'
CMD ["echo","this is image create by lqz"]

2、Dockerfile使用命令(docker build)

①作用:根据dockerfile创建镜像

②命令格式:docker build [OPTIONS] PATH | URL | -

③命令参数

--tag list(-t):为镜像设置名称和tag
--file string(-f):指定Dockerfile的路径(这是可以使用其他名称命名Dockerfile)
[PATH]:Dockerfile所在路径(文件夹路径),文件名必须是Dockerfile
[URL]:Dockerfile所在URL地址

三、Dockerfile构建特征

1、查看官方的Dockerfile:https://github.com/docker-library/docs

2、Dockerfile必须具备一个FROM命令来进行构建

3、每一个Dockerfile命令都会构建一层镜像(本质上是每一层都会启动一个容器,执行完命令后,将容器进行提交后,产生新的镜像层)

4、通过查看下载下来的镜像,发现历史层信息的层ID是missing,其实是因为原本的层id只存在于构建镜像的宿主机上,一旦转移镜像后,历史层消息中将只保留最新一层的ID

四、Dockerfile命令概述

1、FROM: 指定基础镜像

2、RUN:构建镜像过程中需要执行的命令,可以有多条,docker build

3、CMD:添加启动容器时需要执行的命令,多条只有最后一条生效,可以在启动容器时被覆盖和修改

4、ENTRYPOINT:同CMD,但这个一定会被执行,不会被覆盖修改

5、MLABELAINTAINER:表明镜像的作者,将被遗弃,被LABEL代替

6、EXPOSE:设置对外暴露的端口

7、ENV:设置执行命令时的环境变量,并且在构建完成后,仍然生效

8、ARG:设置只在构建过程中使用的环境变量,构建完成后,将消失

9、ADD:将本地文件或目录拷贝到镜像的文件系统中,能解压特定格式文件,能将URL作为要拷贝的文件

10、COPY:将本地文件或目录拷贝到镜像的文件系统中

11、VOLUME:添加数据卷

12、USER:指定以哪个用户的名义执行RUN,CMD和ENTRYPOINT等命令

13、WORKDIR:设置工作目录

14、ONBUILD:如果制作的镜像被另一个Dockerfile使用,将在那里被执行Docekrfile命令

15、STOPSIGNAL:设置容器退出时发出的关闭信号

16、HEALTHCHECK:设置容器状态检查

17、SHELL:更改执行shell命令的程序,Linux的默认shell是[“/bin/sh”, “-c”],Windows的是[“cmd”, “/S”, “/C”]

posted @ 2020-09-13 17:53  专业搬砖人士  阅读(157)  评论(0)    收藏  举报