最小的镜像 - 天天5分钟玩转容器技术(9)

镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。docker

本章内容安排以下:学习

  1. 首先经过研究几个典型的镜像,分析镜像的内部结构。spa

  2. 而后学习如何构建本身的镜像。操作系统

  3. 最后介绍怎样管理和分发镜像。code

镜像的内部结构

为何咱们要讨论镜像的内部结构?容器

若是只是使用镜像,固然不须要了解,直接经过 docker 命令下载和运行就能够了。软件

但若是咱们想建立本身的镜像,或者想理解 Docker 为何是轻量级的,就很是有必要学习这部分知识了。配置

咱们从一个最小的镜像开始吧。file

hello-world - 最小的镜像

hello-world 是 Docker 官方提供的一个镜像,一般用来验证 Docker 是否安装成功。二维码

咱们先经过 docker pull 从 Docker Hub 下载它。

 

用 docker images 命令查看镜像的信息。

hello-world 镜像居然还不到 2KB!

经过 docker run 运行。

50.png

其实咱们更关心 hello-world 镜像包含哪些内容。

Dockerfile 是镜像的描述文件,定义了如何构建 Docker 镜像。Dockerfile 的语法简洁且可读性强,后面咱们会专门讨论如何编写 Dockerfile。

hello-world 的 Dockerfile 内容以下:

只有短短三条指令。

  1. FROM scratch
    此镜像是从白手起家,从 0 开始构建。

  2. COPY hello /
    将文件“hello”复制到镜像的根目录。

  3. CMD ["/hello"]
    容器启动时,执行 /hello

镜像 hello-world 中就只有一个可执行文件 “hello”,其功能就是打印出 “Hello from Docker ......” 等信息。

/hello 就是文件系统的所有内容,连最基本的 /bin,/usr, /lib, /dev 都没有。

hello-world 虽然是一个完整的镜像,但它并无什么实际用途。一般来讲,咱们但愿镜像能提供一个基本的操做系统环境,用户能够根据须要安装和配置软件。这样的镜像咱们称做 base 镜像。

咱们下一节讨论 base 镜像。

二维码+指纹.png

相关文章
相关标签/搜索