Docker 入门

什么是容器化技术

应用部署演化主要分为三个阶段:

  • 物理机时代
  • 虚拟机时代
  • 容器化时代

物理机时代

file
  • 经济成本较高:物理服务器硬件成本高,不易于维护
  • 受制于硬件:内存、CPU能力提升有限
  • 部署成本较高:主机存放、系统安装、程序环境、应用部署多个步骤
  • 资源浪费:应用对硬件的要求不一,可能造成磁盘浪费,或者是cpu的浪费
  • 难于扩展和迁移:比如增加内存、主机迁移、操作系统更换等

虚拟化时代

file

相比较物理机,虚拟化可以让物理机的资源得到最充分的应用。多个虚拟机运行在同一个物理机上。常用的虚拟化软件有VMware、KVM等。

  • 多部署:一台物理机可以创建多个虚拟机
  • 资源池:物理机的硬件资源被Hypervisor抽象为一个资源池,资源池中的资源可以被动态分配给每个虚拟机
  • 资源隔离: 每个虚拟机的资源都是独立的,有自己的软件和硬件资源,不会相互影响
  • 很容易扩展:资源可被随时扩展和缩减(比如给VM1分配2核2g内存),虚拟机可以随时创建
  • VM需要安装操作系统:较小的应用部署在一个VM上,会造成操作系统层面的资源浪费

容器化时代

file

相较于虚拟机,容器不会打包操作系统,所以每个容器所占用的资源是变小的。容器底层依赖于容器化引擎(比如Docker),而Docker引擎则直接依赖宿主机操作系统。

  • 虚拟化是物理层面的隔离,比如内存大小分配等
  • 容器是在APP层面的隔离,他们共享物理资源

容器化解决的问题

容器化技术的产生,让软件开发的协作方式也发生了变化。传统上,一个应用程序的上线过程是极其繁杂的,需要开发人员和运维人员配合进行。开发人员需要将要上线的程序打包、将数据库数据导出、以及各种参数以及配置文件交给运维人员。运维人员会根据配置文档将环境搭建起来并部署应用程序。如果有任意一个步骤出现问题,就可能导致严重的上线问题。而有了容器之后,开发人员可以将应用程序、环境、配置都打包为一个容器,再交给运维人员,这样就不会再出现问题了。同时,容器化技术提供了标准化的应用部署方案,运维人员只需要通过容器编排工具,就可以很方便的将应用程序发布到各个集群的节点上;不仅如此,还提供了容器管理工具,便于运维人员监控和修复。

file
  • 标准化的迁移方式:开发将程序所需的所有环境打包到镜像中,将镜像交给运维处理
  • 统一参数配置:可对应用程序参数进行统一管理
  • 自动化部署:镜像 > 容器的过程都是自动进行的
  • 应用集群监控:通过监控方便了解程序的运行状态以及集群状态
  • 是开发和运维之间沟通的桥梁

什么是Docker

file
  • Docker是一款开源的容器引擎,基于Go语言开发。
  • 容器是完全使用沙箱机制,容器开销极低
  • Docker就是容器化技术的代名词
  • Docker是一个平台(鲸鱼),多个容器(集装箱)可以运行在Docker平台上

Docker相关文档

https://docs.docker.com/

其中包含了安装文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值