Comment

INSTRUCTION arguments

FROM

基于哪个base镜像

RUN

  • 执行命令并创建新的镜像层,run经常用于安装软件包

MAINTAINER

镜像创建者

copy

将文件从build context复制到镜像

#1
COPY ["src","dest"]
COPY src dest
#注意:src只能指定build context中的文件

CMD

  • container启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD。CMD主要用于container启动时指定的服务
  • 当docker run command的命令匹配到CMD command时,会替换CMD执行的命令。
  • 存在三种使用格式
    • Exec: CMD ["Command","param1","param2"]
    • CMD ["param1","param2"] 为ENTRYPOINT提供额外的参数,此时ENTRYPOINT必须使用exec格式
    • CMD command param1 param2

ENTRYPOINT

container启动时执行的命令,但是一个Dockerfile中只能有一条ENTRYPOINT命令,如果多条,则只执行最后一条。ENTRYPOINT没有CMD的可替换特性

  • ENTRYPOINT的exec格式用于设置执行的命令及其参数,同时可通过CMD提供额外的参数
  • ENTRYPOINT的shell格式会忽略任何CMD或docker run提供的参数

USER

使用哪个用户跑container

EXPOSE

container内部服务开启的端口。主机上要用还得在启动container时,做host-container的端口映射:

docker run -d -p 127.0.0.1:3000:22 ubuntu-ssh

container ssh服务的22端口被映射到主机的33301端口

ENV

用来设置环境变量,比如:ENV ROOT_PASS tenxcloud

ADD

将文件拷贝到container的文件系统对应的路径。ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了。如果src是一个tar,zip,tgz,xz文件,文件会被自动的解压到dest

VOLUME

可以将本地文件夹或者其他container的文件夹挂载到container中。

WORKDIR

切换目录用,可以多次切换(相当于cd命令),对RUN、CMD、ENTRYPOINT生效

ONBUILD

ONBUILD 指定的命令在构建镜像时并不执行,而是在它的子镜像中执行

注意

构建dockerfile时,必须提前转备好build context中的文件

两种方式shell,EXEC指定run,cmd和entrypoint要运行的命令

  • CMD和ENTRYPOINT建议使用Exec格式
  • RUN则两种都是可以的

[Docker8]Dockerfiles的更多相关文章

  1. Images之Dockerfiles

    Best practices for writing Dockerfiles This document covers recommended best practices and methods f ...

  2. Docker---(8)Docker启动Redis后访问不了

    原文:Docker---(8)Docker启动Redis后访问不了 版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 https://blog.csdn.net/ ...

  3. docker-8 docker小技巧

    docker使用小技巧 杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有的已经停止的容器 docker rm $(docker ps -a -q) 删除所 ...

  4. 编写Dockerfiles

    指令 docker build通过Dockerfile制作镜像 docker build [PATH] [-f Dockerfile] 其中PATH不写,默认执行指令的当前目录,不要用 /,这样将导致 ...

  5. 【新技术】Docker 学习笔记

    原文地址 一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 --  ...

  6. Docker相关文档

    网上找到的一个入门级Docker学习笔记,写的不错,值得一看. 转自:http://www.open-open.com/lib/view/open1423703640748.html#articleH ...

  7. 非常详细的docker学习笔记

    http://www.open-open.com/lib/view/open1423703640748.html 一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化 ...

  8. 非常详细的 Docker 学习笔记

    一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docke ...

  9. 非常详细的 Docker 学习笔记-转载

    文章链接 一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 --  ...

随机推荐

  1. MyBatis之ResultMap的association和collection标签(一)

    1.先说resultMap比较容易混淆的点, 2. Map结尾是映射,Type是类型  resultType 和restltMap restulyType: 1.对应的是java对象中的属性,大小写不 ...

  2. 从摔得稀碎、蓝屏再到黄牛拒绝加价:iPhone X究竟是怎么了

    X究竟是怎么了" title="从摔得稀碎.蓝屏再到黄牛拒绝加价:iPhone X究竟是怎么了"> ​近日,iPhone X终于迎来了正式出货的时间.作为十周年的创 ...

  3. redis笔记之一

    NoSQL简介 全称是Not Only SQL,泛指菲关系型数据库,它是通过键值对存储数据并且将数据存储在内存中.而像mysql,sql server这些通过关系表存数据的就叫关系型数据库 为什么需要 ...

  4. Ansible(一) Try it - 枯鱼的博客

    学习ansible的最好方式就是使用,先别管什么inventory,playbook,module这些.按照安装文档安装,然后try it,一边学一边体验,这样的速度是最快的.当熟悉了之后,想要深入就 ...

  5. IdentityServer4.FreeSql 持久化实现

    前言 故事是这样开始的: 然后突然又来了句... 扪心自问自从不知道怎么当了 FreeSql 开发群 () 的管理以来, 几乎没有给 FreeSql 做过什么贡献...惭愧惭愧. 借此机会, 似乎可以 ...

  6. 基础又重要的浮动(float)

    浮动 浮动的概念 什么是浮动,他在css中占据什么样的位置 网页布局的核心,就是用CSS来摆放盒子位置.如何把盒子摆放到合适的位置? 在css中有三种方式来定位位置 普通文档标准流方式 (默认方式) ...

  7. 超全!python的文件和目录操作总结

    文件的基本读写 path = r'C:\Users\Brady\Documents\tmp' with open(path + r'\demo.txt', 'r', encoding='utf-8') ...

  8. MVC06

    1.校验机制 我们可以在Model中使用属性进行校验 using System; using System.ComponentModel.DataAnnotations; using System.D ...

  9. Vue+Axios+iview+vue-router实战管理系统项目

    项目实现登陆验证,iviewui组件使用,vue-router路由拦截,在删除登陆存储的token后,直接路由进登陆页面,实战数据请求,本地data.json,笔者也是初出茅庐,在项目运行后,会一直c ...

  10. JZOJ 1301. treecut

    1301. treecut (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Description 有一个N个节点的无根树,各节 ...