1. 物理机演进到虚拟化部署

1.1 物理机部署

在早期的项目部署中是非常繁琐和复杂的,通常就是一台物理机跑起来一个项目

  • 部署非常慢
  • 成本很高
  • 资源浪费
  • 难以扩展和迁移

1.2 虚拟部署

 1.2.1 虚拟机

虚拟机的出现可以很好的解决物理机部署存在的问题

  • 一台物理机可以部署多个app
  • 实现环境上的隔离

但是虚拟机也存在很大的问题,虚拟机有独立的操作系统,非常消耗物理机的资源,可能一台物理机也创建不了太多的虚拟机

1.2.2 容器技术

容器技术的出现,可以让不同的操作系统共享相同的物理机资源,解决了宿主机部署冲突的问题,如进程空间,网络空间和文件系统空间

  • 更高效的利用系统资源
  • 更快的启动时间
  • 更轻松的迁移和扩展
  • 轻量级的实现资源环境隔离

docker就是对容器实现增删改查的软件

2. docker使用原理流程

2.1 LXC技术

LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求

linux是支持LXC技术的

 

2.2 docker管理容器

docker是基于Golang开发的一款管理容器的软件,其本质上就是调用linux的LXC,完成对容器的增删改查操作,每一个容器都有独立的

  • 网络空间
  • 文件系统空间
  • 进程空间

容器的性能

  • 实现环境交付的一致性
  • 实现环境的隔离,不会产生部署冲突
  • 轻量级
  • 高性能
  • 弹性扩缩容

说白了,就是在一台物理机上,尽可能创建更多的相互隔离的环境,满足不同服务的部署

2.3 基于docker实现项目的部署

 3. 容器化开发部署

开发一个项目通常由开发,测试和运维三大部门组成,每个部门都有自己的工作环境,之前的做法都是各自安装项目的运行环境,极大的造成时间上的浪费

现在的devops文化倡导的就是敏捷开发,这就要求必须使用docker技术来进行开发部署

 

  • 源码部署:对于开发人员开发的源码,通常使用gitee或者github实现源码的分享
  • 环境部署:对于开发人员编写的dockerfile,生成对应的镜像,上传到镜像仓库中,如docker hub
  • 基于源码和容器可以快速的实现项目的部署运行或者测试

 

posted on 2023-06-10 15:07  阿明明  阅读(22)  评论(0编辑  收藏  举报