Docker-Dockerfile格式
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格式的更多相关文章
- Docker Dockerfile详解
http://blog.csdn.net/wsscy2004/article/details/25878223 如何使用 Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等 ...
- docker Dockerfile指令ADD和COPY的区别,添加目录方法
docker Dockerfile指令ADD和COPY的区别,添加目录方法 ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录.以及一个URL标记的文件 拷贝到镜像中.其格式是: ADD 源 ...
- Docker Dockerfile简述
原文地址:https://www.cnblogs.com/cuimiemie/p/6442677.html 作用 Dockerfile的内容是一坨可以执行的代码(或者说是指令)(docker的DSL) ...
- docker Dockerfile里使用的命令说明
一,dockerfile格式 注释# 指令 参数 指令不区分大小写,但是推荐全部大写指令. 指令从上到下顺序被执行 第一个指令必须是[FROM],指示出要使用的基础镜像. 执行docker file时 ...
- Docker - Dockerfile - 常见命令简介
概述 感觉是个 比较重要的东西 有个疑问 我是先讲 docker build 还是 先讲 Dockerfile 穿插讲 docker build 最基本的东西 原理 -t -f docker file ...
- [第十二篇]——Docker Dockerfile之Spring Cloud直播商城 b2b2c电子商务技术总结
Docker Dockerfile 什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明. 使用 Dockerfile 定制 ...
- docker——Dockerfile创建镜像
写在前面: 继续docker的学习,昨天用docker成功跑了tomcat,但是在centos中镜像跑的容器手动装jdk和tomcat,今天学习用Dockerfile创建镜像,并在上面搭建java环境 ...
- docker~Dockerfile优化程序的部署
回到目录 一些理论 我们都知道docker这个容器工具可以帮助我们快速进行环境的部署,这对于运营人员来说,无疑是个福音,而这个工作大叔认为不应该是运营人员干的,而是由开发人员来做,因为只有你知道你干的 ...
- docker~Dockerfile方式生成控制台和Api项目的镜像
回到目录 一些理论知识 将控制台程序和API程序部署到docker,然后运行它,这个首先要解决的问题就是如何在linux平台运行C#代码,哈哈,很古老的问题,事实上,对于这种问题早在几年前就已经有了解 ...
- Docker Dockerfile
镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题.镜像构建透明性的问题.体积的 ...
随机推荐
- 关于SqlHelper
在 SqlHelper 类中实现的方法包括: ExecuteNonQuery.此方法用于执行不返回任何行或值的命令.这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数. Exec ...
- SQL Server中查询某个数据库中表的个数
--SQL Server中 数表: SELECT * FROM SYSOBJECTS WHERE xtype = 'U'; SELECT COUNT(*) FROM SYSOBJECTS WHERE ...
- ORACLE删除当前用户下所有的表的方法
1.如果有删除用户的权限,则可以: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉. 删除后再创建该用户. --创建管理员用户 create ...
- 打不开tomcat
org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 59; schema_reference.4: 无法读取方案文档 'http: ...
- 浅谈大数据神器Spark中的RDD
1.究竟什么是RDD呢? 有人可能会回答是:Resilient Distributed Dataset.没错,的确是如此.但是我们问这个实际上是想知道RDD到底是个什么东西?以及它到底能干嘛?好的,有 ...
- C++虚方法(虚函数)随笔
本文不讨论虚函数的原理,只简单总结下虚函数的常用事项. 虚函数(虚方法)是C++动态联编 实现多态的重要手段,在函数声明时使用关键字virtual即可,如: virtual void func(voi ...
- Ubuntu 16.04 软件中心闪退 解决方案
最近使用16.04不知道是哪里出了问题,软件中心打不开了,点击图标之后完全不显示GUI,过一会儿软件就自动关闭了,然后也没有报错的log. 虽然可以使用命令行升级,但是强迫症不能忍啊. 经过一番折腾, ...
- 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 ...
- mac下安装和配置mysql5.7.9
我安装的是5.7.9版本的sql 一开始在网上看到的都是其他版本的安装,弄得自己卸载了好几次 mysql就只有一个dmg主文件,安装这一个就好了. 5.7以后安装的mysql不再使用旧版的默认密码:r ...
- ZOJ2604-DP
递推式并不知自己推出来的,用来纪念一下学会了java的函数用法... 最后5分钟的时候,大姐头直接告诉我打表,但是我当场就蒙了,我怎么会用java打表(其实自己脑中想的就是要输出到文件中然后生成数组打 ...