zoukankan      html  css  js  c++  java
  • 最小的镜像

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

    本章内容安排如下:

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

    2. 然后学习如何构建自己的镜像。

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

    镜像的内部结构

    为什么我们要讨论镜像的内部结构?

    如果只是使用镜像,当然不需要了解,直接通过 docker 命令下载和运行就可以了。

    但如果我们想创建自己的镜像,或者想理解 Docker 为什么是轻量级的,就非常有必要学习这部分知识了。

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

    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

  • 相关阅读:
    数据结构:树[data struct: tree]
    关于计算机学科的一些期刊和会议(转)
    这个世界究竟是怎么了
    [思考]怎么在C#中加入新功能
    vsta相关
    Practical numerical methods with C#
    C# (CSharp)中的foreach,for关键词
    代码生成相关
    没有可用于当前位置的源代码 解决办法
    access数据库删除两个日期之间 的数据 SQL语句
  • 原文地址:https://www.cnblogs.com/CloudMan6/p/6788841.html
Copyright © 2011-2022 走看看