• 第 3 章 镜像


    base 镜像有两层含义:

    1. 不依赖其他镜像,从 scratch 构建。
    2. 其他镜像可以之为基础进行扩展。

    能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu, Debian, CentOS 等。

      以 CentOS 为例考察 base 镜像包含哪些内容。

      1. 下载 docker pull centos 
      2. 查看镜像信息 docker images centos

    Linux 操作系统由内核空间和用户空间组成。如下图所示:

    rootfs

    内核空间是 kernel,Linux 刚启动时会加载 bootfs 文件系统,之后 bootfs 会被卸载掉。

    用户空间的文件系统是 rootfs,包含我们熟悉的 /dev, /proc, /bin 等目录。

    对于 base 镜像来说,底层直接用 Host 的 kernel,自己只需要提供 rootfs 就行了。

    而对于一个精简的 OS,rootfs 可以很小,只需要包括最基本的命令、工具和程序库就可以了。

    base 镜像提供的是最小安装的 Linux 发行版

      CentOS 镜像的 Dockerfile 的内容:

    1 FROM scratch
    2 ADD centos-7-docker.tar.xz /
    3 CMD ["/bin/bash"]

     第二行 ADD 指令添加到镜像的 tar 包就是 CentOS 7 的 rootfs。在制作镜像时,这个 tar 包会自动解压到 / 目录下,生成 /dev, /porc, /bin 等目录。

     Docker Hub 的镜像描述页面中查看 Dockerfile 。

    支持运行多种 Linux OS

    不同 Linux 发行版的区别主要就是 rootfs。

    比如 Ubuntu 14.04 使用 upstart 管理服务,apt 管理软件包;而 CentOS 7 使用 systemd 和 yum。这些都是用户空间上的区别,Linux kernel 差别不大。

    所以 Docker 可以同时支持多种 Linux 镜像,模拟出多种操作系统环境。

      上图 Debian 和 BusyBox(一种嵌入式 Linux)上层提供各自的 rootfs,底层共用 Docker Host 的 kernel。

    base 镜像只是在用户空间与发行版一致,kernel 版本与发型版是不同的。

    1. Host kernel 为 4.4.0-131
    2. 启动并进入 CentOS 容器并验证容器是 CentOS 7
    3. 容器的 kernel 版本与 Host 一致

    小结

    • 容器只能使用 Host 的 kernel,并且不能修改。
    • 所有容器都共用 Host 的 kernel,在容器中没办法对 kernel 升级。
    • 如果容器对 kernel 版本有要求(比如应用只能在某个 kernel 版本下运行),则不建议用容器,这种场景虚拟机可能更合适。

    ------------------引用来自------------------

    https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587585&idx=1&sn=bcba35750ffe83aa31db0bfe1ffd43dd&chksm=8d308098ba47098e666fa7eb83c11a266c658267aee656231a7e47eb5caf0459e3ceafae65f4&scene=21#wechat_redirect

  • 相关阅读:
    PAT (Advanced Level) 1060. Are They Equal (25)
    PAT (Advanced Level) 1059. Prime Factors (25)
    PAT (Advanced Level) 1058. A+B in Hogwarts (20)
    PAT (Advanced Level) 1057. Stack (30)
    PAT (Advanced Level) 1056. Mice and Rice (25)
    PAT (Advanced Level) 1055. The World's Richest (25)
    PAT (Advanced Level) 1054. The Dominant Color (20)
    PAT (Advanced Level) 1053. Path of Equal Weight (30)
    PAT (Advanced Level) 1052. Linked List Sorting (25)
    PAT (Advanced Level) 1051. Pop Sequence (25)
  • 原文地址:https://www.cnblogs.com/gsophy/p/10179740.html
Copyright © 2020-2023  润新知