Docker镜像文件与仓库(二)

Docker镜像文件与仓库(二)

Dockerfile指令


Dockerfile格式:

1.#Comment注释
2.INSTRUCTION大写的指令名 argument参数

  • FROM
1.FROM <image>
2.FROM <image>:<tag>
3.#通过FROM指定的镜像名都必须是已经存在的镜像,这个镜像叫做基础镜像,而且必须是第一条非注释指令
  • MAINTAINER
1.MAINTAINER <name>
2.#指定镜像的作者信息,包含镜像的所有者和联系信息
  • RUN
1.#指定当前镜像中运行的命令
2.RUN <command> (shell模式)
3. /bin/sh -c command
4. 比如 RUN echo hello
5.RUN ["executable","param1","param2"] (exec模式)
6. 比如 RUN ["/bin/bash","-c","echo hello"]
  • EXPOSE
1.EXPOSE <port> [<port>...]
2.#指定运行该镜像文件的容器使用的端口,但是我们在运行容器的时候仍然要指定端口,因为dockerfile写的端口只是为了告诉docker这个容器在运行的时候可能会使用哪些端口
3.docker run -p 80 -d test nginx -g "daemon off;"
  • CMD
1.CMD ["executable","param1","param2"] (exec模式)
2.CMD command param1 param2 (shell模式)
3.CMD ["param1","param2"] (作为ENTRYPOINT指令的默认参数)
4.#CMD指令是用来指定容器启动时的默认情况
  • ENTRYPOINT
1.ENTRYPOINT ["executable","param1","param2"] (exec模式)
2.ENTRYPOINT command param1 param2 (shell模式)
3.#CMD能被覆盖,而ENTRYPOINT不会
  • ADD
1.ADD <src>...<dest>
2.ADD ["<src>"..."<dest>"] (适用于文件路径中有空格的情况)
  • COPY
1.COPY <src>...<dest>
2.COPY ["<src>"..."<dest>"] (适用于文件路径中有空格的情况)

ADD vs. COPY

  • ADD包含类似tar的解压功能
  • 如果单纯复制文件,Docker推荐使用COPY

    • VOLUME
1.VOLUME ["/data"]
2.#卷,对于文件共享来说
  • WORKDIR
1.WORKDIR /path/to/workdir
2.#为后面的指令指定工作目录
  • ENV
1.ENV <key> <value>
2.ENV <key>=<value> ...
3.#用来设置环境变量
  • USER
1.USER daemon 
2.#指定镜像文件为什么样的用户运行
3. USER user
4. USER user:group
5. USER user:gid
6. USER uid
7. USER uid:gid
8. USER uid:group
9.#默认使用root用户
  • ONBUILD
1.ONBUILD [INSTRUCTION]
2.#能够为镜像添加触发器
3.#当一个镜像被其他镜像作为基础镜像时执行
4.#会在构建过程中插入指令

Dockerfile构建过程

  • 从基础镜像运行一个容器
  • 执行一条指令,对容器做出修改
  • 执行类似docker commit的操作,提交一个新的镜像层
  • 再基于刚提交的镜像层运行一个新容器
  • 执行Dockerfile中的下一条指令,直至所有指令执行完毕

使用中间层镜像进行调试的好处

查找错误

构建缓存:能使下一次启动时速度加快

如果想不使用缓存docker build --no-cache

对Dockerfile进行修改,然后启动的时候就从修改的地方开始刷新缓存

查看镜像构建的过程docker history [image]

Docker镜像与仓库(二)Dockerfile的更多相关文章

  1. 第四章 使用Docker镜像和仓库(二)

    第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...

  2. Docker基本命令与使用 —— Docker镜像与仓库(二)

    一.查看和删除镜像 1.Docker Image 镜像 容器的基石 层叠的只读文件系统 联合加载(union mount) (存储位置 /var/lib/docker) docker info 2.列 ...

  3. 第四章 使用Docker镜像和仓库

    第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...

  4. Docker镜像与仓库(一)

    Docker镜像与仓库(一) Docker镜像与仓库(一) 如何查找镜像? Docker Hub https://registry.hub.docker.com docker search [OPTI ...

  5. 04_Docker入门(下)之docker镜像和仓库的使用

    docker镜像和仓库 镜像介绍 docker镜像是由文件系统叠加而成的.最低端是一个引导文件系统,即bootfs.当一个容器启动后,它会将被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存以 ...

  6. Docker之- 使用Docker 镜像和仓库

    目录 使用Docker 镜像和仓库 什么是 Docker 镜像 列出 Docker 镜像 tag 标签 Docker Hub 拉取镜像 查找镜像 构建镜像 创建Docker Hub 账号 使用 Doc ...

  7. docker镜像的仓库

    一.docker镜像的仓库 --- repos-registry的创建: 仓库分为公共仓库和私有仓库 DockerHub的官方仓库 https://hub.docker.com DockerPool社 ...

  8. Docker镜像的仓库及底层依赖的核心技术(3)

    一.docker镜像的仓库 仓库分为公共仓库和私有仓库 DockerHub的官方仓库:https://hub.docker.com DockerPool社区仓库:https://dl.dockerpo ...

  9. docker镜像与仓库

    1.docker image 镜像 容器的基石 层叠的只读文件系统 联合加载(union mount)   2.镜像存储地址 /var/lib/docker 3.镜像操作 列出镜像 镜像标签和仓库 查 ...

随机推荐

  1. 【递推+矩阵快速幂】【HDU2604】【Queuing】

    Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. URL传参中文乱码encodeURI、UrlDecode

    传递参数  encodeURI("url.aspx?str"+"汉字")-----------(是 URi  不是URL) 后台接收参数  Server.Url ...

  3. .net控件dropdownlist动态绑定数据 ----转

    DropDownList控件的使用(数据绑定)(.net学习笔记二) 一.在页面初始化时候将集合绑定到DropDownListpublic void Page_Load(Object src.Even ...

  4. C语言strcmp()函数:比较字符串(区分大小写)

    头文件:#include <string.h> strcmp() 用来比较字符串(区分大小写),其原型为: int strcmp(const char *s1, const char *s ...

  5. C#l连接OPC进行数据交互

    步骤 :引用 OPCNETAPI.DLL&&OPCNETAPI.COM.DLL 1.查询服务器      2. 连接服务器  3. 读取数据     4.写入数据 1.查询服务器 :根 ...

  6. Python同步数据库的数据到Neo4J

    写了主要是步骤,如果疑问,请咨询QQ:5988628 Python版本采用2.7.X,默认的2.6.X后期会有问题,建议,一开始就升级Python.然后再安装pip. 访问数据库 sqlalchemy ...

  7. Spring-----Spring对AOP的支持

    转载自:http://blog.csdn.net/hekewangzi/article/details/51713002

  8. css画图形

    博客:  史上最强大的40多个纯cs图形 问题:看了上面的博客思考简单的三角行是怎么形成的? #triangle-up { width: 0; height: 0; border-left: 50px ...

  9. OpenGL鼠标旋转图像

    (鼠标旋转功能) #include <iostream> using namespace std; #include<gl/glut.h> GLfloat transx,tra ...

  10. 在github搭建你的个人主页

    一. 有没有遇到过在简历上要求写项目地址的经历.或者面试时面试官问你的项目在线地址是多少. 二. github 不但有代码托管的功能,还可以搭建在线演示项目,对于一个没有多少私房钱的穷屌丝,这个是不是 ...