FROM-指定基础镜像

指定基础镜像,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令。

# 语法格式
FROM <image>
FROM <image>:<tag> # 如果不写<tag>则默认以latest为基准

RUN-运行指定的命令

构建镜像过程中需要执行的命令。可以有多条。

语法格式,如下所示:

# shell格式:就像在命令行中输入的Shell脚本命令一样。
RUN <command> # exec格式:就像是函数调用的格式。
RUN ["executable", "param1", "param2"]

CMD-容器启动时要运行的命令

语法格式,如下所示:

# 第一种就是shell这种执行方式和写法
CMD command param1 param2
# 第二种是可执行文件加上参数的形式(推荐)
CMD ["executable","param1","param2"]
# 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数
CMD ["<param1>","<param2>",...] CMD [ "sh", "-c", "echo $HOME" ]
CMD [ "echo", "$HOME" ]

ENTRYPOINT-为容器指定默认运行程序

ENTRYPOINT或者CMD指令只能写一条,如果写了多条,那么,ENTRYPOINT或者CMD都只有最后一条生效。

与CMD不同的是,由ENTRYPOINT启动的程序不会被docker run命令行指定的参数所覆盖,而且,这些命令行参数会被当作参数传递给ENTRYPOINT指令指定的程序

语法如下:

# exec格式(推荐)
ENTRYPOINT ["executable", "param1", "param2"] # shell格式
ENTRYPOINT command param1 param2

MAINTAINER-指定生成镜像的作者名称

MAINTAINER <name>

EXPOSE-为容器打开指定要监听的端口以实现与外部通信

# 这里的“-P”选项是关键,在启动容器的使用使用-P,
# Docker会自动分配一个端口和转发指定的端口,
# 使用-p可以具体指定使用哪个本地的端口来映射对外开放的端口。

ENV-设置环境变量

示例:

ENV word hello
RUN echo $word

ARG-设置环境变量

构建参数ARG和ENV指令一样,都是设置环境变量。不过作用域不一样。ARG 设置的环境变量仅对 Dockerfile 内有效,也就是说只有 docker build 的过程中有效,构建好的镜像内不存在此环境变量。即在将来容器运行时是不会存在这些环境变量的。但是不要因此就用ARG来保存密码之类的信息

ARG <参数名>[=<默认值>]

ADD-复制文件或者目录到容器里指定路径

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

ADD /data/src/nginx-1.14.0.tar.gz /data/src/

# 构建镜像
docker build -t nginx:v1.1 . # 创建容器
docker run --rm --name nginx -it nginx:v1.1 ls /data/src # 我们可以发现已经解压了nginx-1.14.0.tar.gz文件

COPY-复制文件或者目录到容器里指定路径

从上下文目录中复制文件或者目录到容器里指定路径。

样例:

# 复制宿主机文件index.html到容器/data/html/index.html
COPY index.html /data/html/index.html # 复制宿主机data目录下文件(包括子目录)到容器/data/目录下,并不会复制目录本身
COPY data /data/

VOLUME-定义匿名数据卷

定义匿名数据卷,可实现挂载功能,可以将内地文件夹或者其他容器中得文件夹挂在到这个容器中。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。

在启动容器 docker run 的时候,我们可以通过 -v 参数修改挂载点。

USER-指定执行后续命令的用户和用户组

默认情况下,容器的运行身份为root用户。

WORKDIR-指定工作目录

docker build 构建镜像过程中的,每一个 RUN 命令都是新建的一层。只有通过 WORKDIR 创建的目录才会一直存在。

Docker Dockerfile指令大全的更多相关文章

  1. docker Dockerfile指令ADD和COPY的区别,添加目录方法

    docker Dockerfile指令ADD和COPY的区别,添加目录方法 ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录.以及一个URL标记的文件 拷贝到镜像中.其格式是: ADD 源 ...

  2. Docker Dockerfile指令

    Docker 可以通过 Dockerfile 的内容来自动构建镜像.Dockerfile 是一个包含创建镜像所有命令的文本文件,通过docker build命令可以根据 Dockerfile 的内容构 ...

  3. Docker Dockerfile 指令详解与实战案例

    Dockerfile介绍及常用指令,包括FROM,RUN,还提及了 COPY,ADD,EXPOSE,WORKDIR等,其实 Dockerfile 功能很强大,它提供了十多个指令. Dockerfile ...

  4. docker学习笔记17:Dockerfile 指令 ONBUILD介绍

    ONBUILD指令可以为镜像添加触发器.其参数是任意一个Dockerfile 指令. 当我们在一个Dockerfile文件中加上ONBUILD指令,该指令对利用该Dockerfile构建镜像(比如为A ...

  5. docker之Dockerfile指令介绍

    Docker通过对于在Dockerfile中的一系列指令的顺序解析实现自动的image的构建 通过使用build命令,根据Dockerfiel的描述来构建镜像 通过源代码路径的方式 通过标准输入流的方 ...

  6. Docker学习笔记三 Dockerfile 指令 定制镜像

    本文地址:https://www.cnblogs.com/veinyin/p/10412079.html  镜像是分层存储的,每一层都是独立存在的,修改当前层并不会修改其依赖的上一层,删除某一层也只是 ...

  7. Docker基本命令与使用 —— Dockerfile指令与构建(三)

    一.Dockerfile指令上 1.指令格式 # Comment 注释, 以#开头 INSTRUCTION argument 以大写的指令+参数 #First Dockerfile 注释 FROM u ...

  8. Docker学习(三): Dockerfile指令介绍

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...

  9. Docker学习(11) Dockerfile指令

    Dockerfile指令 指令格式 FROM MAINTAINER RUN EXPOSE CMD ENTRYPOINT ADD COPY VOLUME WORKDIR ENV USER ONBUILD ...

  10. docker——Dockerfile创建镜像

    写在前面: 继续docker的学习,昨天用docker成功跑了tomcat,但是在centos中镜像跑的容器手动装jdk和tomcat,今天学习用Dockerfile创建镜像,并在上面搭建java环境 ...

随机推荐

  1. 2022-11-15:这里有 n 个航班,它们分别从 1 到 n 进行编号。 有一份航班预订表 bookings , 表中第 i 条预订记录 bookings[i] = [firsti, lasti,

    2022-11-15:这里有 n 个航班,它们分别从 1 到 n 进行编号. 有一份航班预订表 bookings , 表中第 i 条预订记录 bookings[i] = [firsti, lasti, ...

  2. 2022-01-31:迷宫 III。 由空地和墙组成的迷宫中有一个球。球可以向上(u)下(d)左(l)右(r)四个方向滚动,但在遇到墙壁前不会停止滚动。当球停下时,可以选择下一个方向。迷宫中还有一个洞

    2022-01-31:迷宫 III. 由空地和墙组成的迷宫中有一个球.球可以向上(u)下(d)左(l)右(r)四个方向滚动,但在遇到墙壁前不会停止滚动.当球停下时,可以选择下一个方向.迷宫中还有一个洞 ...

  3. Django-4:运行runserver

    Djnago运行.启动 命令:python manage.py runserver 端口号 例如:当前有个项目为ClosedLoop,如果要启动它就进入项目环境,或者直接在PyCharm的终端中运行命 ...

  4. doo 13 之11 :开发之看板视图和用户端 QWeb

    QWeb 是 Odoo 使用的模板引擎,它基于 XML 来生成 HTML 片断和页面.通过 QWeb可生成内容丰富的看板(Kankan)视图.报表和 CMS 网页.本文中我们将学习QWeb 语法以及如 ...

  5. R 包 optparse 之命令行参数传递

    对于经常与 Linux 打交道的生物信息分析童鞋们,我们今天分享一下怎么在命令行下通过传递参数(类似perl.python) 的方式执行 R 脚本. 一般来说,命令行下使用 Rscript 执行 R ...

  6. 24 式加速你的 Python

    一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...

  7. CSS3实现3D效果的图片墙

    先来看一下效果:http://39.105.101.122/myhtml/CSS/transform_3D/img_3D.html 目前没有做IE的兼容,在谷歌浏览器里面可以看到效果 布局结构: &l ...

  8. idea设置字体大小(换主题后的字体大小设置)

    如果你是默认主题 直接这样设置字体大小 如果你换了自定义主题 如果你换了自定义主题,那么上面的设置方法会没有作用,我们需要像下面这样设置:

  9. IDEA连接数据库

    我只想卷死各位,或者被各位卷死 在入门案例映射配置文件中存在报红的情况.问题如下: 产生的原因:Idea和数据库没有建立连接,不识别表信息.但是大家一定要记住,它并不影响程序的执行. 解决方式:在Id ...

  10. 一篇随笔学会CSS

    CSS3 1.CSS介绍 HTML+CSS+JS 结构+表现+交互 2.CSS发展史 Cascading Style Sheet 层叠级联样式表 表现层:美化网页(字体.颜色.边距.宽高.网页定位.网 ...