dockerfiles的指令不区分大小写,但约定为全部大写

dockerfiles支持如下语法命令:

1.FROM <image name>

  所有的dockerfile都必须以from命令开始,from命令会指定镜像基于哪个基础镜像而创建

  如:

  FROM ubuntu

2.MAINTAINER <author name>

  设置该镜像的作者

3.RUN <command>

  在shell或者exec的环境下执行的命令,run指令会在新创建的镜像添加新的层面,接下来提交的结果用在dockerfile的下一条指令中。

4.ADD <src> <destination>

  复制文件指令,src为启动上下文中的一个文件或一个URL中的文件,destination是容器内的路径

5.CMD ["executable","param1","param2" ]或CMD command param1 param2

  提供容器默认的执行命令,dockerfile只允许使用一次CMD命令,如果执行多次,最后一次自动替换之前的。

6.EXPOSE <port>

  指定容器在运行时监听的端口

7.ENTRYPOINT ["executable","param1","param2"]或ENTRYPOINT command param1  param2

  给容器指定一个默认的应用程序,这意味着用镜像创建容器时,只运行指定的应用,类似于CMD命令,也是只允许一个ENTRYPOINT,最后一个会抵消前面的。

8.WORKDIR <path>

  指定RUN,CMD,ENTRYPOINT命令的工作目录

9.ENV <key> <value>

  设置环境变量

10.USER <uid>

  镜像正在运行时设置一个UID

11.VOLUME ['/data']

  授权访问从容器内到主机上的目录

  在启动容器时指定目录使用 -v参数 -v 本地目录:容器目录,如把本机/code/aosp挂载到容器内的/aosp目录:

  docker run -v /data/aosp:/aosp ubuntu

  i.e.如果要挂载多个目录可多次使用-v参数

使用以下命令来从Dockerfile构建镜像

docker build [options] PATH | URL

options有

  --rm=true表示构建成功后,移除所有中间容器

  --no-cache=false 表示在构建过程中不使用缓存

ENV 设置环境变量
ENV <key><value>
ENV指令可以用于为docker容器设置环境变量

ENV设置的环境变量,可以使用 docker inspect命令来查看。同时还可以使用docker run --env <key>=<value>来修改环境变量。

Note: 环境变量的设置要合理,比如将环境变量设置为非交互的 ENV DEBIAN_FRONTEND noninteractive.那再用这个来进行操作: docker run -t -i image bash

dockerfile语法的更多相关文章

  1. 四:(之五)Dockerfile语法梳理和实践

    *5.Dockerfile语法梳理和实践 5.1 尽量使用官方的image作为base image 5.2 metadata:指明作者 版本 描述 5.3 每一条run都能形成一个分层,避免无用分层应 ...

  2. Dockerfile语法梳理

    Dockerfile语法 我们先来看一下上篇的 Dockerfile #获取base image FROM adoptopenjdk/openjdk8:latest #类似于执行 linux指令 RU ...

  3. dockerfile 语法

    基本语法格式:INSTRUCTION arguments (指令+参数)不分大小写 注释格式:# 注释 第一个指令必须是FROM,标示使用什么镜像 1.解析器指令 解析器指令是可选的,并且影响处理Do ...

  4. Dockerfile语法简介

    Dockerfile是由一系列命令和参数构成的脚本,一个Dockerfile里面包含了构建整个image的完整命令.Docker通过docker build执行Dockerfile中的一系列命令自动构 ...

  5. DockerFile语法【h】

    DockerFile在我理解就是可以将所需要构建镜像的功能.组件都天前配置好,然后直接生成一个Image,而不是先生成镜像,再通过修改容器的方法来生成最终需要的镜像.   镜像的定值实际上就是定值每一 ...

  6. 一文学会Dockerfile语法

    接应上篇,续讲前文.今天咱来聊一下Dockerfile的使用 . 虽然可以通过docker commit命令来手动创建镜像,但是通过Dockerfile文件,可以帮助我们自动创建镜像,并且能够自定义创 ...

  7. dockerfile语法规则

    编写Dockerfile 在前面的章节,我们学习了通过docker命令来下载镜像,运行镜像,在容器中部署自己的程序,最后将容器提交到自己的镜像中.但是,这并不是Docker推荐的镜像构建方式.在这一章 ...

  8. 四:(之八_Linux压力测试工具stress)Dockerfile语法梳理和实践

    8.1 安装stress stress目前是在该目录下的可执行文件 --vm 创建几个进程 --vm-bytes 为每个进程分配多少内存 8.2 debug输出stress创建进程的过程 一直在创建有 ...

  9. 四:(之六_镜像发布)Dockerfile语法梳理和实践

    *6.镜像发布 1>注册Docker Hub账号并登陆. build的镜像名称格式必须是: dockerhub账户名/标识: 使用docker login在项目目录下登录: 浏览器: 2> ...

随机推荐

  1. (删)Java线程同步实现二:Lock锁和Condition

    在上篇文章(3.Java多线程总结系列:Java的线程同步实现)中,我们介绍了用synchronized关键字实现线程同步.但在Java中还有一种方式可以实现线程同步,那就是Lock锁. 一.同步锁 ...

  2. hiveF 函数解析时间问题

    #!/bin/bashsource /etc/profileupdatetime=`date --date='0 days ago' +"%Y-%m-%d %H:%M:%S"`ec ...

  3. oracle的insert的时候&符号如何插入(转义)

    chr(38)替换& insert   into   table   values( 'http://localhost:8080/index.action?username=138& ...

  4. JVM初探之类文件结构

    java 的 .class 文件字节码如图:Class 文件是一组以8字节为基础单位的二进制流,各个数据项目有着严格的结构.下面我们介绍下class文件的结构. 魔数 class文件的头4个字节是魔数 ...

  5. java 基础知识四 流程控制

    java   基础知识四 流程控制 Java流程控制包括顺序控制.条件控制和循环控制 顺序控制就是逐条执行 有if和switch两个分支 循环控制就是 又称为回路控制,根据循环初始条件和终结要求,执行 ...

  6. .NET程序员也学Node.js——初识Node.js

    清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...

  7. Mac OS平台下应用程序安装包制作工具Packages的使用介绍(补充)

    上一篇:Mac OS平台下应用程序安装包制作工具Packages的使用介绍 补充说明 上一篇文章中介绍了如何使用Packages如何创建mac下的安装包.但是这样制作出来的安装包只能安装到系统的文件路 ...

  8. [JavaWeb]SpringSecurity-OAuth2.0 统一认证、资源分离的配置,用于分布式架构、模块化开发的认证体系

    前言 关于 OAuth2.0的认证体系,翻阅了好多资料,RCF 文档太多,看了一半就看不下去了,毕竟全英文的文档看起来,是有一点让我烦躁,但也对 OAuth2.0的认证流程有了一个基本的概念,之前用 ...

  9. 需求收集实例 二 之 GF Phase 2

    GF Phase 2 做B2B的site, 需求收集过程与 需求收集过程实例之 - GF Phase 1主要的不同是在phase 1 开发在需求规格文档敲定后开始,而phase 2 把feature ...

  10. Java匿名内部类使用与示例

    首先说为什么有匿名类 两个原因(产生的使命) 1.简化代码编写 某种情况下,类只需要扩展一个方法,没必要为了一个方法单独去写一个子类,然后然后调用子类,此时需要匿名类 2.在不同的包内的类内调用类的p ...