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. 前端:IE兼容性的相关方法

    有一段时间做前端的时候,IE下的就兼容性是比较令人头痛的问题,我在这一过程中也是看了很多的资料,然后把一些自己觉得比较普遍的问题进行一下相关的总结. 1.在IE6下,格式为png的图片在IE6上的透明 ...

  2. php session的操作

    [设置session数据] <?php session_start(); //初始化 //session文件中可以保存 dobule,integer,bool,array,object $_SE ...

  3. clip:rect矩形剪裁

    clip:rect(top right bottom left);依据上-右-下-左的顺序提供自图片左上角为(0,0)坐标计算的四个偏移数值,其中任一数值都可用auto替换. 矩形剪裁 还需要绝对定位 ...

  4. Longest Substring Without Repeating Characters(Difficulty: Medium)

    题目: Given a string, find the length of the longest substring without repeating characters. Examples: ...

  5. Mysql EF Code First

    1.更新程序包EntityFramework->6.1.3 2.下载程序包MySql.Data.Entities(Ver:6.8.3) 3.修改config.cs或者web.config,包含以 ...

  6. Android数据持久化技术 — — —文件存储

    文件保存 package com.example.datastroredtest; import android.app.Activity;import android.os.Bundle;impor ...

  7. 为什么要学习java?

    前面说了什么是java java只是一门语言,中文,英语,c++,c#等等数之不尽的语言 java的应用领域: 1)安卓应用 2)金融业服务器的应用 3)Java Web应用 4)软件工具 5)交易应 ...

  8. android SDK 离线下载更新

    http://blog.csdn.net/harvic880925/article/details/37913801 前言:在公司配置eclipse做android开发,真是烦死了,不知公司做了哪门子 ...

  9. 关于docker容器是怎样建立新的namespace的。

    最近博客收到了一封交流的私信,感谢您的关注:现在就我理解的docker建立容器时namespace的建立问题做一个 个人的回答: 一,从原理角度来讲: docker创建container,说白了就是l ...

  10. 盒模型与在低版本IE下的区别

    对css有一定了解的同学一定听说过盒模型,在这里以我自己的一点儿了解和认知来解释一下盒模型与盒模型在低版本IE浏览器下与其他浏览器下的区别. W3c标准下的盒模型 盒模型由 content(内容),p ...