前言:

本课程需要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的作用

  • 更快速的应用交付和部署(CI/CD)

    什么是 CI/CD ? – 知乎 (zhihu.com)

  • 更便捷的升级和扩缩容

  • 更简单的系统运维

  • 更高效的计算资源利用

4. Docker 网站

  • Docker官方英文资源:

    docker官网:http://www.docker.com

    Docker windows入门:https://docs.docker.com/windows/

    Docker Linux 入门:https://docs.docker.com/linux/

    Docker mac 入门:https://docs.docker.com/mac/

    Docker 用户指引:https://docs.docker.com/engine/userguide/

    Docker 官方博客:http://blog.docker.com/

    Docker Hub: https://hub.docker.com/

    Docker开源: https://www.docker.com/open-source

    Docker中文资源:

    Docker中文网站:http://www.docker.org.cn

    Docker入门教程: http://www.docker.org.cn/book/docker.html

    Docker安装手册:http://www.docker.org.cn/book/install.html

    一小时Docker教程 :https://blog.csphere.cn/archives/22

    Docker纸质书:http://www.docker.org.cn/dockershuji.html

    DockerPPT:http://www.docker.org.cn/dockerppt.html

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

海阔平鱼跃,天高任我行,给我一片蓝天,让我自由翱翔。