1. FROM

作用:指定基础镜像
使用:FROM 镜像名
demo:
FROM mysql
FROM mysql:5.6

2. RUN

作用:指令是用来执行命令行命令的
使用:
shell格式:RUN命令,就跟直接在命令行输入命令一样
demo:RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html exec格式:RUN ['可执行文件', '参数1', '参数二']

3. MAINTAINER

作用:维护者的信息
使用:MAINTAINER <name>
demo:MAINTAINER 萌新瑟瑟发动

4. ADD

作用:将本地文件添加到容器中 压缩包类型的文件会自动解压(网络文件不会解压),可以访问网络
使用:ADD 本地文件 虚拟机路径

5. COPY

作用:功能类似ADD 但是不能解压和访问网络资源
使用:COPY 本地文件 虚拟机路径

6. CMD

作用:构建容器后调用,也就是在容器启动的时候才进行调用
使用:
CMD ['executable', 'param1', 'param2'] # 执行可执行的软件 优先
CMD ['param1', 'param2'] # 设置ENTPYPOINT,直接调用 ENTPYPOINT语法 + 参数
CMD command parm1, parm2 # 执行shell 内部命令
注意:
CMD 指定容器启动时执行的命令
RUN 指定镜像构建所执行的命令

7. ENV

作用:设置环境变量
使用:
ENV <key> <value> # <key>之后所有的部分都会被当成value的一部分
ENV <key>=<value> # 可以设置多个变量每个变量为一个key=value的键值对,若其中<key>包含空格可以使用\ 进行转译。 也可以使用'' 标志,另外 \ 可以用于换行

8. EXPOSE

作用:指定外界交互端口
使用:EXPOSE <port> <port> # 主机端口/tcp 虚拟机端口/tcp 注: /tcp 可选

9. VOLUME

作用:用于指定持久化目录
使用:
VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"] 注:一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能:
1、卷可以容器间共享和重用
2、容器并不一定要和其它容器共享卷
3、修改卷后会立即生效
4、对卷的修改不会对镜像产生影响
5、卷会一直存在,直到没有任何容器在使用它

10. WORKDIR

作用:工作路径,类似linux命令的 cd

使用:WORKDIR <path>
注意:通过WORKDIR设置工作目录后,在Dockerfile 其后的命令RUN、CMD等命令就在此目录下执行。在使用docker run 运行容器时,可以通过 - w 参数覆盖构建时所设置的工作目录

11. USER

作用:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
使用:
USER user
USER user:group
USER uid
USER uid:gid
USER user:gid
USER uid:group

12. ARG

作用:用于指定传递给构建运行时的变量
使用:ARG <name>[==<default value>]

最新文章

  1. 在Ubuntu14.04_ROS_indigo上安装Kinect2驱动和bridge
  2. shell 使用
  3. Log4net使用(二)
  4. webpack 教程 那些事儿05-多页应用
  5. 集成架构:对比 Web API 与面向服务的架构和企业应用程序集成(转)
  6. POJ 3264-Balanced Lineup, NYOJ 119-士兵杀敌3 线段树
  7. Android中的Drawable资源
  8. zookeeper的异常处理(Disconnected, SyncConnected, Expired)
  9. php信用卡卡号验证函数
  10. java基础程序题
  11. javascript权威指南(6) - 对象
  12. 三、 添加视图View(ASP.NET MVC5 系列)
  13. Python内置函数(38)——zip
  14. NSA Fuzzbunch中EternalRomance工具复现过程
  15. mktime 和 TZ
  16. C#四则运算器(多态方法实现)
  17. SpringMVC DispatcherServlet-------视图渲染过程
  18. elasticsearch-hadoop使用
  19. PHP-密码学算法及其应用-散列函数
  20. Netty 源码分析之 番外篇 Java NIO 的前生今世

热门文章

  1. jq判断input 复选框有没有选
  2. 这几种实现线程的方法你一定要知道,月薪20k以上的面试都会问到
  3. 【老孟Flutter】自定义文本步进组件
  4. 如何在IDM中设置代理服务器?
  5. 怎么用Camtasia给视频添加片头片尾
  6. 337. 打家劫舍 III(树上dp)
  7. 红外遥控接收发射原理及ESP8266实现
  8. JavaSE 学习笔记06丨并发
  9. DNS、IP地址、子网掩码和默认网关
  10. Django连接redis