什么是base镜像
 
    不依赖其他镜像,从scratch构建。或者是其他可以作为基础镜像进行扩展镜像,比如各种Linux发行版的Docker镜像,比如CentOS、Ubuntu等。
 
    下面以CentOS镜像为例进行学习
 
 
    
    
 
    从Docker Hub上下载centos镜像,查看镜像信息,只有202MB ?!?!这么小,没搞错吧
 

 
    Linux操作系统由内核空间和用户空间组成,如下图:
 
    bootfs + rootfs
 
    内核空间对应的是kernel,Linux启动时会家在bootfs,之后会卸载bootfs。
    用户空间对应的是rootfs,包含我们熟悉的 /dev /proc /bin 等目录
 
    对于base镜像来说,地城直接用 Host 的kernel,自己只需要提供rootfs就行了
 
    对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令、工具和程序库就可以了。相比其他Linux的发行版,CentOS的rootfs已经很臃肿了,alpine的还不到10MB
 
     
 
    base镜像提供的是最小安装的Linux发行版,下面是CentOS镜像的Dockerfile内容(可以在Docker Hub的镜像描述也中查看Dockerfile):
 
root@docker-lab:~# cat Dokcerfile
FROM scratch                    #    从零开始
ADD centos-7-docker.tar.gz /    #    添加centos7的rootfs到镜像中,ADD命令在添加的时候会自动解压到 / 目录,也就是创建 /dev /bin /etc 等
CMD ["/bin/bash"]               #    启动容器时运行bash环境
 
    不同Linux发行版的区别主要是rootfs,kernel差别不大,所以Docker Host上可以运行多种Linux发行版的容器
 
    
 
划重点:base镜像在用户空间与发行版一致,kernel必须也只能和Docker Host的kernel版本一致,因为他使用的就是Docker Host的kernel
 
 

010、base镜像 (2018-12-27 周四)的更多相关文章

  1. 第 3 章 镜像 - 010 - base 镜像

    base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建. 其他镜像可以之为基础进行扩展. 能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubunt ...

  2. loli的测试-2018.12.9

    模拟赛-2018.12.9 这是NOIP之后第一次模拟赛...但是考的比较悲惨. 非常喜欢写考试总结,不知道为什么... T1:https://www.luogu.org/problemnew/sho ...

  3. base 镜像 - 每天5分钟玩转容器技术(10)

    上一节我们介绍了最小的 Docker 镜像,本节讨论 base 镜像. base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建. 其他镜像可以之为基础进行扩展. 所以,能称作 base ...

  4. 2018.12.02 Socket编程之初识Socket

    Socket编程主要分为TCP/UDP/SCTP三种,每一种都有各自的优点,所以会根据实际情况决定选用何种Socket,今天开始我将会逐步学习Socket编程,并将学习过程记录于此. 今天学习的是TC ...

  5. OPPO Developers Conference(2018.12.26)

    时间:2018.12.26地点:北京国家会议中心

  6. Tencent Cloud Developers Conference(2018.12.15)

    时间:2018.12.15地点:北京朝阳悠唐皇冠假日酒店

  7. 2018.12.1 Test

    目录 2018.12.1 Test A 串string(思路) B 变量variable(最小割ISAP) C 取石子stone(思路 博弈) 考试代码 B C 2018.12.1 Test 题目为2 ...

  8. Docker镜像中的base镜像理解

    base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建. 其他镜像可以之为基础进行扩展. 所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ub ...

  9. 12.27 cf div3 解题报告

    12.27 cf div3 解题报告 wxy.wxy,带上分拉,全场做了个无脑小白 比赛场地 A: T1,跟着模拟就好了 B: sort一遍之后 去除的数一定是a[1]或者a[n] 比较去除谁小就输出 ...

随机推荐

  1. Oracle 控制文件管理

    控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括数据文件和日志文件信息.控制文件在数据库创建时被自动创建,并在数据库发生物理变数时更新.控制文件被不断更新,在任何时候都要保证控 ...

  2. Oracle 通过触发器实现ID自增

    Oracle不像Mysql,SQLServer能够直接设置ID自增,但是可以通过触发器实现ID自增. 1 创建测试表 create table t_goods(id number primary ke ...

  3. SQL Data Compare 对比 SQLserver数据

    1. 下载redgate的工具 https://www.red-gate.com/dynamic/products/sql-development/sql-compare/download 2. 输入 ...

  4. Linux 下载安装配置Redis完整步骤

    安装: 1.获取redis资源 wget http://download.redis.io/releases/redis-4.0.8.tar.gz 2.解压 tar xzvf redis-4.0.8. ...

  5. POJ3273-Monthly Expense-二分答案

    FJ对以后的每一天会花mi块钱,他想把这些天分成M个时段,然后每个时段的花费和最小. 二分答案,如果加上这天还没有达到mid,就加上它.之后看分成的时段是否大于M #include <cstdi ...

  6. day30 item系列

    item 会将数据操作类似于字典的操作具体用到的方法 __getitem__(self, item): __setitem__(self, key, value): __delitem__(self, ...

  7. 沉迷Link-Cut tree无法自拔之:[BZOJ3514] Codechef MARCH14 GERALD07 加强版

    来自蒟蒻 \(Hero \_of \_Someone\) 的 \(LCT\) 学习笔记 $ $ 又是一道骚题...... 先讲一个结论: 假设我们用 \(LCT\) 来做这道题, 在插入边 \(i\) ...

  8. NodeJS - Express 4.0错误:Cannot read property 'Store' of undefined

    按着<NodeJS开发指南>里的第五章建立microblog的例子操作,使用node.js 的express框架配置将session存储到mongodb时出错:TypeError: Can ...

  9. Looper Handler Mssage

    1. 一个Handler只有一个队列;2. 在调用Handler.post(Runnable runnable)方法时,会将runnable封装成一个Message;3. 在队列执行时,会判断当前的M ...

  10. 【bzoj3680】平衡点 模拟退火

    模拟退火是一种求函数最值问题的随机算法. 给定一个函数的某一初始坐标,可以拟定一个"温度"(这里主要是借用退火的物理意义),这里的温度可以理解成自变量可以取值的范围.之后在当前最优 ...