《第一本docker书》第4章 使用docker镜像和仓库 读书笔记

docker最底端是一个引导文件系统,即bootfs。

第二层是root文件系统rootfs,位于引导文件系统之上。

在传统的Linux引导过程中,root文件系统会最先以只读的方式加载,当引导结束并完成了完整性检查之后,它才会被切换为读写模式。但是在docker里,root文件系统永远只能是只读状态,并且docker利用联合加载技术又会在root文件系统层上加载更多的只读文件系统。联合加载指的是一次同时加载多个文件系统,但是在外面看起来只能看到一个文件系统。联合加载将各层文件系统叠加到一起,这样最终文件系统会包含所有底层的文件和目录。

docker将这样的文件系统成为镜像。一个镜像可以放到另一个镜像的顶部。位于下面的镜像成为父镜像,最底部的叫做基础镜像。

当docker第一次启动一个容器时,初始的读写层是空的。当文件系统变化时,这些变化都会引用到这一层上。比如,如果想修改一个文件,这个文件会从该读写层下面的只读层复制到读写层。该文件的只读版本依然存在,但是已经被读写层中的该文件副本所隐藏。这种机制被成为写时复制。

docker images #查看所有的docker镜像

本地镜像都保存在/var/lib/docker下,所有的容器都保存在/var/lib/docker/containers

docker pull ubuntu #拉去镜像
docker run -it --name 容器名称 ubuntu:12.04 /bin/bash #可以给镜像加上版本

镜像分用户镜像和顶层镜像。

docker images fedora #查看指定的镜像列表
docker search puppet #查找指定的镜像

  

构建镜像

docker login #登录(国内访问docker hub好慢啊)

  

时间: 2024-12-10 09:08:01

《第一本docker书》第4章 使用docker镜像和仓库 读书笔记的相关文章

《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议-读书笔记

章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(1)-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(2)-读书笔记 <TCP/IP详解卷1:协议>第4章 ARP:地址解析协议-读书笔记 <TCP/IP详解卷1:协议>第5章 RARP:逆地址解析协议-读书笔记 1.引言 具有本地磁盘的系统引导

《TCP/IP详解卷1:协议》第11章 UDP:用户数据报协议-读书笔记

章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(1)-读书笔记 <TCP/IP详解卷1:协议>第3章 IP:网际协议(2)-读书笔记 <TCP/IP详解卷1:协议>第4章 ARP:地址解析协议-读书笔记 <TCP/IP详解卷1:协议>第5章 RARP:逆地址解析协议-读书笔记 <TCP/IP详解卷1:协

Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记

第一章 Thread导论 为何要用Thread ? 非阻塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Task) 并行算法 第二章 Thread的创建与管理 一.什么是Thread ? Thread是所在主机执行的应用程序任务(task). 只有一个线程的例子: public class Factorial { public static void main(String[] args) { int n = 5; System.ou

Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记

Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记     本章学习了使用git下载两套源代码并搭建两个开发环境.分别为Android源代码和Linux内核源代码.Android源代码中包含了HAL(即硬件抽象层) 的代码,并学习了如何搭建这两种开发环境. Android 的移植的本质就是Linux内核的移植,Linux内核的移植主要是Linux驱动的移植.而开发和测试Linux驱动就需要安装以上两个开发环境. 搭建两套环境的具体步骤如下: 一.下载编译和测试A

《Java并发编程实战》第九章 图形用户界面应用程序界面 读书笔记

一.为什么GUI是单线程化 传统的GUI应用程序通常都是单线程的. 1. 在代码的各个位置都须要调用poll方法来获得输入事件(这样的方式将给代码带来极大的混乱) 2. 通过一个"主事件循环(Main Event Loop)"来间接地运行应用程序的全部代码. 假设在主事件循环中调用的代码须要非常长时间才干运行完毕,那么用户界面就会"冻结",直到代码运行完毕.这是由于仅仅有当运行控制权返回到主事件循环后,才干处理兴许的用户界面事件. 非常多尝试多线程的GUI框架的努力

第四章 源代码的下载与编译 - 读书笔记

Android驱动月考4 1.配置Android源代码下载环境 创建文件以及配置路径 PATH 使用curl或者wget方式下载脚本 并且赋予权限于~/bin/repo 创建Android源代码的目录以及初始化init,并且开始下载源代码,也可以下载源代码的一部分. 2.使用git clone从Googlesource把Android源代码项目克隆到本地. 3.编译,这里比较重要,运行envsetup.sh安装的shell脚本,之后进行之后的安装步骤接模拟器. 4.下载和编译linux内核的源代

第三章:Git使用入门的读书笔记

由于涉及源代码,就需要对源代码进管理.Linux内核代码及很多著名的项目都使用了Linux之父linus编写的Git进行源代码管理.Linus以一个文件系统专家和内核设计者的视角对Git进行设计,其独特设计让Git拥有非凡的性能和最为优化的存储能力,Git在各方面都优于其他同类的源代码管理软件.Android和Linux内核.驱动开发的过程中会涉及大量的源代码,而这些源代码基本都由Git管理. 1. 安装Git:一般Linux都自带Git, 一般情况下都使用的是:Ubuntu Linux10.1

第四章 源代码的下载和编译--读书笔记

之前,学习了如何使用Git,现在我们终于可以使用Git来下载自己所需的源代码了.首先我们要做的工作是配置Android源代码下载环境: 第1步:创建一个用于存放下载脚本文件(repo)的目录(可将该脚本文件一放在任何目录下,在这里使用~/bin): 第2步:下载repo脚本文件(用于下载Android源代码): 第3步:创建用于存放Android源代码的目录(可放在其他目录中): 第4步:初始化: 第5步:下载Android源代码 下载Android源代码中的某个子项目有两种方法:1,使用rep

DW2.0下一代数据仓库架构_第8章 数据模型和DW2.0(读书笔记)

智能线路图    数据模型是DW2.0必备组成部分.数据模型在很多方面都扮演着通往DW2.0其他部分的只能线路图的角色.在DW2.0中建立线路图有很多种原因,但最重要的原因是建立DW2.0并不是一蹴而就的,相反,每次建立一步,通过很长的时间完成,另外,它的建立是由很多人而不是单个人完成的.为了协调不同人员的工作以及适应不同类型的用户,非常有必要建立一个线路图--数据模型,数据模型描述了DW2.0各部分如何结合在一起.如果没有数据模型,DW2.0各部分的工作边被割裂开来,从而导致系统的混乱. 数据