容器学习Day01-初识容器

系列文章目录

容器学习Day01-初识容器

容器学习Day02-VMware Workstation安装Ubuntu

容器学习Day03-Ubuntu常用命令(一)

容器学习Day04-Ubuntu常用命令(二)

容器学习Day05-Ubuntu常用命令(三)

容器学习Day06-Ubuntu常用命令(四)

容器学习Day07-Docker基础(一)

容器学习Day08-Docker基础(二)

容器学习Day09-理解容器镜像

容器学习Day10-搭建私有镜像仓库

容器学习Day11-docker commit构建容器镜像

容器学习Day12-使用Dockerfile构建容器镜像

容器学习Day13-Docker容器网络

容器学习Day14-Docker容器存储

容器学习Day15-Docker容器底层实现技术

容器学习Day16-Docker Compose容器编排


文章目录

前言

一、容器是什么

二、容器的发展

三、Docker容器技术

1、认识Docker

2、Docker架构

3、Docker与传统虚拟化

4、Docker的使用场景

总结

前言

       随着容器技术的迅速发展,开发者已经由传统的虚拟机方式开始转向容器技术,为了适应潮流,咱也来学习一下,在这里记录下自己的学习笔记。


一、容器是什么

       容器来源于英文中的 container 一词,也就是集装箱的意思,当然我们这里说的容器并不是集装箱。容器就是一个视图隔离、资源可限制、独立文件系统的进程集合。所谓“视图隔离”就是能够看到部分进程以及具有独立的主机名等,控制资源使用率则是可以对于内存大小以及 CPU 使用个数等进行限制。容器就是一个进程集合,它将系统的其他资源隔离开来,具有自己独立的资源视图。

二、容器的发展

       我们现在称为容器技术的概念最初出现在 2000 年,当时称为 FreeBSD jail,这种技术可将 FreeBSD 系统分区为多个子系统(也称为 Jail)。Jail 是作为安全环境而开发的,系统管理员可与企业内部或外部的多个用户共享这些 Jail。

       2001 年,通过 Jacques Gélinas 的 VServer 项目,隔离环境的实施进入了 Linux 领域。在完成了这项针对 Linux 中多个受控制用户空间的基础性工作后,Linux 容器开始逐渐成形并最终发展成了现在的模样。

       很快,更多技术结合进来,让这种隔离方法从构想变为现实。控制组(cgroups)是一项内核功能,能够控制和限制一个进程或多组进程的资源使用。而 systemd 初始化系统可设置用户空间,并且管理它们的进程,cgroups 使用该系统来更严密地控制这些隔离进程。这两种技术在增加对 Linux 的整体控制的同时,也成为了保持环境隔离的重要框架。

三、Docker容器技术

1、认识Docker

       Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

       Docker官网地址:Home - Docker

2、Docker架构

       Docker 使用客户端-服务器(C/S)架构。Docker客户端与 Docker守护进程对话,后者负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以 在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护程序使用 REST API,通过 UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。

  • 镜像(Image)Docker 镜像(Image),就相当于是一个 root 文件系统,比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container)镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository)仓库可看成一个代码控制中心,用来保存镜像。
  • 客户端(Client)Docker 客户端通过命令行或者其他工具使用 Docker SDK 与 Docker 的守护进程通信。
  • Docker主机(Host):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

 3、Docker与传统虚拟化

       虚拟机具有完整的操作系统,其自身的内存管理通过相关的虚拟设备进行支持。 在虚拟机中,为用户操作系统和虚拟机管理程序分配有效的资源,从而可以在单台计算机(或主机)上并行运行一个或多个操作系统的多个实例。 每个客户操作系统都作为主机系统中的单个实体运行。

  Docker容器是使用Docker引擎而不是管理程序来执行的,因此容器比虚拟机小。并且由于主机内核的共享,可以更快地启动,具有更好的性能,更少的隔离和更好的兼容性。 Docker容器能够共享一个内核并共享应用程序库,因此容器比虚拟机具有更低的系统开销,只要用户愿意使用单一平台来提供共享的操作系统,容器可以更快,更少资源。虚拟机可能需要几分钟才能创建并启动,而只需几秒钟即可创建并启动一个容器。与在虚拟机中运行应用程序相比,容器中包含的应用程序提供了卓越的性能。

       由于docker不需要hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此CPU、内存利用率上docker将会在效率上有明显优势。当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。

特性容器虚拟机
启动速度秒甚至毫秒数秒至几十秒
系统内核共享内核不共享内核
隔离性进程级别隔离系统资源级别隔离
资源消耗很小较多
运行数量单机可运行上千一般几十个
迁移性优秀一般

 4、Docker的使用场景

        ⭐Web应用的自动化打包和发布。

        ⭐自动化测试和持续集成、发布。

        ⭐在服务型环境中部署和调整数据库或其他的后台应用。

        ⭐从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。


总结

       以上就是今天学习了解的内容,后面准备虚拟机环境进行系统的学习。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AtobeKegio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值