一、Docker 简介

前言:

本课程需要Linux基础,asp.net core/mvc/webapi 等基础开发知识,2-5年以上的开发经验。

市场上很多docker 课程对于.net 程序员都不是特别友好,虽然Docker是一款致力于云原生开发与开发平台无关的容器化技术,但市场上大部分的教程案例都是以Java为例。本人刚好身兼两门开发技术,在本课程中会以Java与.Net Core 两种开发语言为大家进行案例展示。

 

1.为什么使用Docker

  1. 为了跳槽加薪,这个是最现实的问题

  2. 解决环境差异,安装麻烦问题

    从搬家到搬楼的区别,再也不用说我这人认床啦。Docker 可以将所有依赖的环境一键打包成镜像,现在就算是来了几十台服务器也不用担心环境部署问题了。

     

2.什么是Docker

Docker是基于Go语言实现的云开源项目。简单说就是一个虚拟化容器,容器中内置了一简化版的linux系统。

( Hypervisor来负责创建虚拟机 )

Hypervisor,又称虚拟机监视器(英语:virtual machine monitor,缩写为 VMM),是用来建立与执行虚拟机器的软件、固件或硬件。

被Hypervisor用来执行一个或多个虚拟机器的电脑称为主体机器(host machine),这些虚拟机器则称为客体机器(guest machine)。hypervisor提供虚拟的作业平台来执行客体操作系统(guest operating systems),负责管理其他客体操作系统的执行阶段;这些客体操作系统,共同分享虚拟化后的硬件资源

Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。

 

为什么不使用虚拟机

1、启动速度

启动虚拟机需要先启动虚拟机的操作系统,再启动应用,这个过程非常慢;

而启动 Docker 相当于启动宿主操作系统上的一个进程。

2、占用资源

虚拟机是一个完整的操作系统,需要占用大量的磁盘、内存和 CPU 资源,一台机器只能开启几十个的虚拟机。而 Docker 只是一个进程,只需要将应用以及相关的组件打包,在运行时占用很少的资源,一台机器可以开启成千上万个 Docker。

3、隔离性

与虚拟机相比,docker隔离性更弱,docker属于进程之间的隔离,虚拟机可实现系统级别隔离。

4、安全性

docker的安全性也更弱。Docker的租户root和宿主机root等同,一旦容器内的用户从普通用户权限提升为root权限,它就直接具备了宿主机的root权限,进而可进行无限制的操作。虚拟机租户root权限和宿主机的root虚拟机权限是分离的,并且虚拟机利用如Intel的VT-d和VT-x的ring-1硬件隔离技术,这种隔离技术可以防止虚拟机突破和彼此交互,而容器至今还没有任何形式的硬件隔离,这使得容器容易受到攻击

 

特性容器虚拟机
启动 秒级 分钟级
硬盘使用 一般为MB 一般为GB
性能 接近原生
系统支持量 单机支持上千个容器 一般几十个

 

3.Docker的作用

4. Docker 网站

配套视频链接:全网首发java/.net双案例Docker精品课程,Docker 进阶教程(双语言双案例助力教学)-已完结_哔哩哔哩_bilibili

热门相关:夫妻的赞助商   染指帝国首席:老公,别闹   宝贝迷人,总裁圈住爱   宝贝轻轻:总裁的独家宠爱   婚期一年