1、FROM //指定基于那个基础镜像

格式FROM<image>或者FROM<image>:<tag>

例如:

FROM centos

FROM centos:latest

2、MAINTAINER //指定作者信息

格式MAINTAINER<name>

例如:

MAINTAINER fansik shandingshangdeyu@hotmail.com

3、RUN //镜像操作指令

格式为RUN<command>或者RUN["executable","param1","param2"]

例如:

RUN yum install httpd

RUN["/bin/bash","-c","echo hello"]

4、CMD //三种格式:

CMD["executable","param1","param2"]

CMD command param1 param2

CMD ["param1","param2"]

RUN和CMD看起来很像,但是CMD用来指定容器启动时用到的命令,只能有一条

例如:

CMD["/bin/bash","/usr/local/nginx/sbin/nginx","-c","/usr/local/nginx/conf/nginx.conf"]

5、EXPOSE

格式为EXPOSE<port>[<port>...]

例如:

EXPOSE 22 80 8443

这个用来指定要映射出去的端口,比如容器内部我们启动了sshd和nginx,所以我们要把22和80端口暴漏出去,这个需配合-P(大写)来工作,也就是说在启动容器时,需要加上-P(大写),让它自动分配,如果想指定具体的端口,也可以用-p(小写)来指定

6、ENV

格式ENV<key><values>

例如:

ENV PATH /usr/local/mysql/bin:$PATH

它主要是为后续的RUN指令提供一个环境变量,我们也可以定义一些自定义的变量

ENV MYSQL_version 5.6

7、ADD

格式:ADD<src><dest>

将本地的一个文件或目录拷贝到容器的某个目录里,其中src为Dockerfile所在目录的相对路径,它可以是一个url。

例如:

ADD<conf/vhosts></usr/local/nginx/conf>

8、COPY

格式同ADD

使用方法和ADD一样,不同的是它不支持url

9、ENTERYPOINT 格式类似CMD

容器启动是要执行的命令,它和CMD很像,也是只有一条生效,如果写多个只有最后一条生效。

和CMD不同的是:

CMD是可以被docker run指令覆盖的,而ENTRYPOINT不能覆盖,比如,容器名字为fansik,在Dockerfile中指定如下CMD:CMD["/bin/echo","test"]启动容器的命令是docker run fansik这样会输出test

如果启动容器的命令为docker run -it fansik /bin/bash什么都不会输出

ENTRYPOINT不会被覆盖,而且会比CMD活着docker run指定得命令要靠前执行

ENTRYPOINT["echo","test"]

docker run -it fansik 123

则会输出test 123,这相当于要执行命令echo test 123

10、VOLUME

格式VOLUME["/data"]

创建一个可以从本地主机或其他容器挂载的挂载点

11、USER

格式USER daemon

指定运行容器的用户

12、WORKDIR

格式WORKDIR /path/to/workdir

为后续的RUN、CMD或者ENTRYPOINT指定工作目录

Docker-Dockerfile格式的更多相关文章

  1. Docker Dockerfile详解

    http://blog.csdn.net/wsscy2004/article/details/25878223 如何使用 Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等 ...

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

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

  3. Docker Dockerfile简述

    原文地址:https://www.cnblogs.com/cuimiemie/p/6442677.html 作用 Dockerfile的内容是一坨可以执行的代码(或者说是指令)(docker的DSL) ...

  4. docker Dockerfile里使用的命令说明

    一,dockerfile格式 注释# 指令 参数 指令不区分大小写,但是推荐全部大写指令. 指令从上到下顺序被执行 第一个指令必须是[FROM],指示出要使用的基础镜像. 执行docker file时 ...

  5. Docker - Dockerfile - 常见命令简介

    概述 感觉是个 比较重要的东西 有个疑问 我是先讲 docker build 还是 先讲 Dockerfile 穿插讲 docker build 最基本的东西 原理 -t -f docker file ...

  6. [第十二篇]——Docker Dockerfile之Spring Cloud直播商城 b2b2c电子商务技术总结

    Docker Dockerfile 什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明. 使用 Dockerfile 定制 ...

  7. docker——Dockerfile创建镜像

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

  8. docker~Dockerfile优化程序的部署

    回到目录 一些理论 我们都知道docker这个容器工具可以帮助我们快速进行环境的部署,这对于运营人员来说,无疑是个福音,而这个工作大叔认为不应该是运营人员干的,而是由开发人员来做,因为只有你知道你干的 ...

  9. docker~Dockerfile方式生成控制台和Api项目的镜像

    回到目录 一些理论知识 将控制台程序和API程序部署到docker,然后运行它,这个首先要解决的问题就是如何在linux平台运行C#代码,哈哈,很古老的问题,事实上,对于这种问题早在几年前就已经有了解 ...

  10. Docker Dockerfile

    镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题.镜像构建透明性的问题.体积的 ...

随机推荐

  1. 关于SqlHelper

    在 SqlHelper 类中实现的方法包括:   ExecuteNonQuery.此方法用于执行不返回任何行或值的命令.这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数.   Exec ...

  2. SQL Server中查询某个数据库中表的个数

    --SQL Server中 数表: SELECT * FROM SYSOBJECTS WHERE xtype = 'U'; SELECT COUNT(*) FROM SYSOBJECTS WHERE ...

  3. ORACLE删除当前用户下所有的表的方法

    1.如果有删除用户的权限,则可以: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉. 删除后再创建该用户. --创建管理员用户 create ...

  4. 打不开tomcat

    org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 59; schema_reference.4: 无法读取方案文档 'http: ...

  5. 浅谈大数据神器Spark中的RDD

    1.究竟什么是RDD呢? 有人可能会回答是:Resilient Distributed Dataset.没错,的确是如此.但是我们问这个实际上是想知道RDD到底是个什么东西?以及它到底能干嘛?好的,有 ...

  6. C++虚方法(虚函数)随笔

    本文不讨论虚函数的原理,只简单总结下虚函数的常用事项. 虚函数(虚方法)是C++动态联编 实现多态的重要手段,在函数声明时使用关键字virtual即可,如: virtual void func(voi ...

  7. Ubuntu 16.04 软件中心闪退 解决方案

    最近使用16.04不知道是哪里出了问题,软件中心打不开了,点击图标之后完全不显示GUI,过一会儿软件就自动关闭了,然后也没有报错的log. 虽然可以使用命令行升级,但是强迫症不能忍啊. 经过一番折腾, ...

  8. Error running app: This version of Android Studio is incompatible with the Gradle Plugin used. Try disabling Instant Run.

    转自:http://blog.csdn.net/qq_15807167/article/details/51984920 参考:http://stackoverflow.com/questions/3 ...

  9. mac下安装和配置mysql5.7.9

    我安装的是5.7.9版本的sql 一开始在网上看到的都是其他版本的安装,弄得自己卸载了好几次 mysql就只有一个dmg主文件,安装这一个就好了. 5.7以后安装的mysql不再使用旧版的默认密码:r ...

  10. ZOJ2604-DP

    递推式并不知自己推出来的,用来纪念一下学会了java的函数用法... 最后5分钟的时候,大姐头直接告诉我打表,但是我当场就蒙了,我怎么会用java打表(其实自己脑中想的就是要输出到文件中然后生成数组打 ...