什么是Docker

Docker是Google使用go语言进行开发的,对进程进行封装隔离,始于操作系统层面的虚拟化技术。

因为隔离的进程独立于宿主机和其它的隔离进程,因此成为容器

Docker在容器的基础上进行了进一步的封装,从文件系统、网络互联到进程隔离等等,简化了容器的维护和床架你,比虚拟机技术更为轻便、快捷

为什么要用

作为一种新兴虚拟化方式,和传统比有众多优势

  • 更高效的利用系统资源

​ 容器不需要虚拟硬件以及完整的操作系统等额外开销,因此对系统的资源利用率更高。从以下几个方面来看,应用执行速度、内存损耗、文件存储速度等都比传统的虚拟机搞笑,因此一个相同配置的主机,docker可以运行更多数量的应用

  • 更快速的启动时间

​ 由于直接运行宿主内核,可以做到秒级、毫秒级的启动时间;节省了时间

  • 一致的运行环境

​ Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境的一致性;【开发、测试、生产环境】

  • 持续交付和部署

​ 通过定制应用镜像实现持续集成、交付、部署;通过Dockerfile进行镜像构建;Dockerfile使得镜像构建透明化,方便理解

  • 轻松迁移

​ 由于确保了环境的一致性,所以容易迁移;

  • 轻松维护和扩展

​ 使用分层存储和镜像的技术,使得应用复用更加容易,维护更新简单。

基本概念

理解以下三个概念,就理解了Docker的整个生命周期

镜像

  • 操作系统分为内核、用户空间;Docker镜像相当于是一个root文件系统

  • Docker镜像是特殊的文件系统,除了提供运行时所需要的程序、库、资源、配置等文件外,还包含了一些配置参数。但是不包含任何动态数据

  • 分层存储,使得镜像的复用、定制更为容易

容器

  • 容器和镜像的关系,就像类、实例一样;镜像是静态的,容器是运行镜像的实体;容器可以被创建、启动、停止、删除、暂停等操作
  • 容器实质就是进程,但是它运行在属于自己的独立的空间里;所以每一个容器拥有自己的root系统、网络配置、进程空间,甚至自己的用户ID空间。
  • 容器也是分层存储,每一个容器运行时候,以镜像为基础层,为当前存储层;这个为容器运行读写准备的容容器存储层
  • 容器消亡时候,存储层也会跟着消失;所以保存在容器存储层的信息都会没有
  • 容器不应该给存储层写数据,所有的文件写入操作,都需要使用数据卷、或者绑定宿主目录;直接对宿主、网络存储进行读写,性能和稳定性高
  • 数据卷的生命周期独立容器,容器消失,数据卷还在

仓库

  • 分为公有和私有仓库
  • 镜像构建完成后,需要发布到集中存储、分发的镜像服务Docker Registry
  • 一个Docker Registry 可以包含多个Repository,每个仓库都有多个标签,每一个标签对应一个镜像
  • 一般来说,一个仓库会包含同一个软件的不同版本,而标签就是用来给不同版本进行标注;
  • 可以通过<仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签

Docker之一简介的更多相关文章

  1. Docker 容器简介与部署

    关于Docker容器技术 参考文献:<docker 从入门到精通> Docker容器简介 Docker的构想是要实现 "Build,Ship and Run Any App,An ...

  2. Docker的简介以及Dockerfile编写与使用

    Docker的简介 Docker是在容器的基础上,进行了进一步的封装,极大的简化了容器的创建和维护.使得Docker技术比虚拟机技术更为轻便.快捷. 下面是两张对比图. 可以看到传统虚拟机技术是虚拟出 ...

  3. docker (1) ---简介,使用

    一.docker简介: 容器( container-based )虚拟化方案,充分利用了操作系统本身已有的机 制和特性,以实现轻量级的虚拟化(每个虚拟机安装的不是完整的虚拟机), 甚至有人把他称为新一 ...

  4. docker 概念简介、简单入门

    1.docker 简介 Docker 是一个开源项目,这个项目旨在通过把应用程序打包为可移植的.自给自足的容器(引用语) DocKer一次构建可放在任何地方就可以运行,不需要进行任何改变DocKer  ...

  5. Docker(一) 简介

    简介 Docker是一款针对程序开发人员和系统管理员来开发.部署.运行应用的一款虚拟化平台.Docker 可以让你像使用集装箱一样快速的组合成应用,并且可以像运输标准集装箱一样,尽可能的屏蔽代码层面的 ...

  6. Docker入门简介

    Docker的概念 什么是Docker? Docker是一个开源平台,包含:容器引擎和Docker Hub注册服务器 Docker容器引擎:可以将开发者打包他们的应用和依赖包到一个可一直的容器中,然后 ...

  7. Docker Machine 简介

    Docker Machine 是什么? Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在 ...

  8. Docker学习笔记 - Docker的简介

    传统硬件虚拟化:虚拟硬件,事先分配资源,在虚拟的硬件上安装操作系统,虚拟机启动起来以后资源就会被完全占用. 操作系统虚拟化:docker是操作系统虚拟化,借助操作系统内核特性(命名空间.cgroups ...

  9. Docker Compose 简介

    Compose 是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用.使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建 ...

  10. Docker网络简介

    Docker允许通过外部访问容器或则容器互联的方式来提供网络服务. 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过-P或则-P参数来指定断开映射.当使用 -P 标记时, ...

随机推荐

  1. 推荐一个windows系统的下载和安装的网址:win7之家

    win7之家:http://www.windows7en.com/ 精校 完整 极致 Windows系统下载仓储站HelloWindows :https://hellowindows.cn/

  2. V3Det&Bigdetection下载记录

    V3Det dataset https://opendatalab.com/V3Det BigDetection

  3. Python依赖库的导入、导出 | 解决内网安装模块问题 | Python

    通过在有网的机器A下下载所有的依赖包至package文件夹下: pip3 download -r requirements.txt -d ./package 将依赖包移动至没有网的机器B下,指定依赖包 ...

  4. Mybatis-Plus 多租户模式忽略某个方法

    Mapper 类方法添加注解: @InterceptorIgnore(tenantLine = "true") 亲测有效.

  5. 数据库数据实时采集--Maxwell

    1.Maxwell 简介 Maxwell 是一个能实时读取 MySQL 二进制日志文件binlog,并生成 Json格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redi ...

  6. dicom 在生成dcm文件的时候会出现乱码的处理方法

    using Dicom.IO; using System; using System.Collections.Generic; using System.Linq; using System.Text ...

  7. excel表格粘贴到网页的功能

    背景 项目有表格功能,表格过大,一个一个填,过于麻烦. 需要从excel表复制的功能. 过程 监听paste事件,根据事件提供的clipboardData属性,获取数据. 根据换行符 \n 和tab符 ...

  8. MongoDB:文档基本CRUD

  9. mysql异常处理的收集

    今天在处理mysql的存储过程,判断游标是否到了结尾,结果让返回零行的一个查询触发了,随即从网上查阅资料收集异常异常处理. MySql错误处理(一)- SQL服务器模式 导言:MySql错误处理的基础 ...

  10. VXLAN 网络中报文转发过程

    本文分享自天翼云开发者社区<VXLAN 网络中报文转发过程>,作者:刘****林 以同网段的 VM 间互通简单介绍 VXLAN 网络中的报文转发过程. 1.VM1 发送目的地址为 VM2 ...