Docker 从入门到实践(二)Docker 三个基本概念
一、Docker 的三个进本概念?
了解 Docker 的三个基本概念,就可以大致了解 Docker 的生命周期。
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
二、镜像
1.Docker 镜像
我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:18.04 就包含了完整的一套 Ubuntu 18.04 最小系统的 root 文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变
2.分层存储
因为 镜像包含了操作系统完整的 root 文件系统,其体积还是很巨大的,所以引入了 Unios FS 技术,将其设计为分层存储的架构。所以镜像不是那种 ISO 打包文件,镜像是一个虚拟的概念,它是由一组文件系统构成,或者说多层文件系统联合构成。
镜像在构建时,是一层层构建,上一层是下一层的基础,每一层构建结束就不会在被修改,后一层任何修改只会作用在当前层。例如删除上一层文件,不会真的删除该文件,而是会标记删除然后隐藏起来,最终运行容器的时候不会被看见,但是会一直跟随镜像。因此构建镜像时需要小心,不要添加不需要的东西,任何额外的东西都要在本层构建完之前清除。
分层存储使镜像的定制和复用变得容易,可以用之前做好的镜像作为基础层,然后添加新的层,定制自己所需要的东西,构建新的镜像。
三、容器
镜像(Image)和容器(Conatiner)的关系就像是面向对象的类和实例一样,镜像是静态的定义,容器是镜像运行的实体,容器可以被创建,启动,停止,删除,暂停等。容器的实质是进程,但是又和宿主的进程不同,容器有自己的独立命名空间,因此容器拥有自己 root 文件系统,自己的网络配置,自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。所以好多初学者都会把容器和虚拟机搞混。容器同样和镜像一样使用分层存储,以镜像为基础层,在上面创建了一个容器存储层,是为了容器运行时读写准备的。注意,在容器被删除后,容器存储层保存的任何信息都不会保存,它和容器的生命周期一样,所以任何需要保存的数据 Docker 建议保存在数据卷(Volumes)或者宿主机目录中,这样数据不会随着容器的消失而消失。
四、仓库
镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。
一个 Docker Registry 可以有多个 仓库(Repository),每个仓库可以含多个标签(Tag),每个标签都是一个镜像。
最初我没有搞懂 Docker Registry 和 仓库(Repository),简单来说就是 Docker Registry 是注册服务器,用于管理镜像仓库,起到服务器的作用,仓库(Repository)就是存储镜像,起到存储镜像的作用。默认的 Docker Registry 就是 Docker Hub,其中拥有很多高质量的镜像。

Docker 从入门到实践(二)Docker 三个基本概念的更多相关文章
- Docker 从入门到实践(一)Docker 简介
读前须知:本教程大部分都是[Docker 从入门到实践 ]一书的知识,有兴趣可以直接观看书籍.同时,借鉴书籍的知识,如有侵权,请告知我,我会删除处理.谢谢. 一.什么是 Docker? Docker ...
- Docker从入门到实践
一般说来 SPA 的项目我们只要启一个静态文件 Server 就可以了,但是针对传统项目就不一样了,一个项目会依赖很多服务端程序.之前我们的开发模式是在一台开发机上部署开发环境,所有人都在这台开发机上 ...
- 学习资源 Docker从入门到实践 pdf ,docker基础总结导图
学习资源 Docker从入门到实践 pdf ,docker基础总结导图 Docker从入门到实践 pdf 云盘地址:https://pan.baidu.com/s/1vYyxlW8SSFSsMuKaI ...
- Docker从入门到实践(2)
二.基本概念 Docker 镜像 我们都知道,操作系统分为内核和用户空间.对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持.而 Docker 镜像(Image),就相 ...
- 读书笔记---《Docker 技术入门与实践》---其一
一.镜像1.1.搜索 搜索所有nginx镜像 $ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Officia ...
- Docker从入门到实践(3)
三.安装 Docker Docker 分为 CE 和 EE 两大版本.CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月. Docker CE 分为 ...
- Docker从入门到实践(4-1)
使用 Docker 镜像 在之前的介绍中,我们知道镜像是 Docker 的三大组件之一. Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像. ...
- docker的常用操作之二:docker内无法解析dns之firewalld设置等
一,如何启动一个已退出的容器? [root@localhost ~]# docker start storage4 说明:架构森林是一个专注架构的博客,地址:https://www.cnblogs.c ...
- Docker入门与实践之 docker安装与了解
一.Docker 概述 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...
随机推荐
- SpringBoot学习(四)-->SpringBoot快速入门,开山篇
Spring Boot简介 Spring Boot的目的在于创建和启动新的基于Spring框架的项目.Spring Boot会选择最适合的Spring子项目和第三方开源库进行整合.大部分Spring ...
- 记录Newtonsoft.Json的日常用法
最近在做一个使用基于.net mvc 实现前后台传输Json的实例.网上找了一些资料.发现在开发的时候,许多的数据交互都是以Json格式传输的.其中涉及序列化对象的使用的有DataContractJs ...
- redis/memcached可视化客户端工具TreeNMS
RedisDesktopManager 之前用的redis客户端工具还不错,今天发现一个国产的nosql客户端,还挺方便滴 TreeNMS是一款redis,Memcache可视化客户端工具,采用JAV ...
- 最长滑道问题(非递归,C++)
这是爱奇艺的一道算法题. 题目描述请参考博客http://blog.csdn.net/sinat_30186009/article/details/52356053,在此表示感谢. 基本思路参考了以上 ...
- 用Python实现Zabbix-API 监控
做运维的朋友应该知道,公司IDC机房经常有上架.下架.报修和报废的服务器.如果服务器数量很多的时候很容易造成监控遗漏. 大的互联网公司把监控系统和CMDB(资产管理系统|配置管理数据库系统 ...
- 10个最佳Node.js企业应用案例:从Uber到LinkedIn
译者按: Node.js 8已经发布了,NPM模块每周下载量早已超过10亿,从Uber到LinkedIn都在使用Node.js,谁说JavaScript不能写后台? - 原文: 10 best Nod ...
- 初识HTTP协议web开发
HTTP协议 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的 ...
- SAP MM GR-based IV, 无GR不能IV?
SAP MM GR-based IV, 无GR不能IV? 如下的采购订单, 没有做过收货, ITEM的details里却勾选了’GR-Bsd IV’ 选项. 此时试图直接针对该PO#450260713 ...
- Linux网络编程--socket
1.socket的核心思想是,作为服务器间的进程间通信的最底层的实现,常用的大部分网络协议都是基于socket实现. 2.socket 是如何与最终的低层收发包建立联系的? 3.socket 是如何与 ...
- Deep Learning - 2 反向传播
深度神经网络的学习基于两个关键技术: Stochastic Gradient Descent Backpropagation 利用 SGD 算法学习 Weights 和 Biases,利用 Backp ...