Docker容器入门及进阶实战(一) Docker基础及Docker阿里云服务器实战

Docker容器入门及进阶实战(一) Docker基础及Docker阿里云服务器实战

概述

微服务架构

微服务是一种设计思想,是将单体的系统拆分为多个小型独立的系统,各个服务都独立开发、部署、测试。服务之间通过轻量级通信协议进行通讯协作。

微服务与传统单体系统区别

传统单体系统所有业务实现、前后端代码都在一个系统,前期开发、部署、测试都比较简单,随着业务扩展,系统逐渐变更臃肿,单体系统的扩展和维护变得困难。而微服务则是为了解决系统臃肿问题,微服务根据不同功能模块将系统拆分为多个服务,每个服务都在独立的进程运行,有稳定的边界,不会影响其他系统。

为什么要使用Docker

容器技术的优势

  1. 强隔离性: 使用Docker之前,项目部署交互基本采用虚拟机模式,在虚拟机部署各种依赖环境和web容器,将项目打包并上传到虚拟机然后逐个进行部署,虚拟机下各个应用互相影响,部署启动单个应用会影响虚拟机下所有应用。而Docker将应用封装到容器里,包含应用代码、运行环境、依赖库、配置文件等资源,容器之间打到进程级隔离,在容器中操作不会影响宿主机和其他容器。
  2. 弹性伸缩: 使用Docker之前,要扩展服务器,需要运维进行一堆虚拟机环境安装,扩展成本较高,而Docker将运行环境、配置等资源都封装到容器中,由于配合现在云服务,完全实现随开随关的弹性伸缩。
  3. 保证环境一致性: 基于Docker容器技术,可以实现开发、测试、线上环境的统一化和标准化。
  4. 秒级交付和部署: 随着现在k8s的流行、发布管理、资源管理、编排技术等的发展,结合CI/CD可以实现项目的秒级交付和部署。
  5. 高效的资源利用: Docker容器技术非常轻量,相对于传统虚拟机体量,Docker容器化技术能加节省服务器资源。同时Docker无需预先设置容量,配合合理的资源管理平台,能够更加有效的利用资源。

Docker和虚拟机

Docker容器入门及进阶实战(一) Docker基础及Docker阿里云服务器实战

Docker容器入门及进阶实战(一) Docker基础及Docker阿里云服务器实战

指标 虚拟机 Docker
占服务器空间 非常大,GB级 小,MB甚至KB
启动速度 慢,分钟级 启动快,秒级
运行形式 运行在Hypevisor上 直接运行在宿主机内核上,共享内核
并  发   数 少,一台宿主机通常十几个,最多几十个 多,上百个甚至多百上千
性能 低于宿主机 接近宿主机本地进程
资源利用 共享内核,高效利用资源

通过对比可以看出Docker在启动、性能、并发数、资源利用上明显优于虚拟机。

什么是Docker?

Docker是开源容器化引擎,是目前最流行的linux容器化解决方案。开发者通过Docker将应用程序、运行环境、依赖包、配置文件等资源打包封装在可移植的容器中,然后发布在任何流行的Linux和Windows机器上,也可以做虚拟化。Docker安全使用沙箱机制,相互之间不会有任何关联。

Docker组成及架构

一个完整Docker由以下几个部分组成:

  • Docker Clinet
  • Docker Daemon 守护进程
  • Docker image Docker镜像
  • Docker Container 容器

Docker容器入门及进阶实战(一) Docker基础及Docker阿里云服务器实战

                                                    (Docker2019工作机制)

Docker2019相对于Docker2013主要新增了两个主要组件,一个是容器生命周期中管理容器的Containerd,另一个是符合OCI标准的运行时(Runc),用于创建容器的最低用户级抽象(替换Docker2013 LXC)。

Docker 安装

环境:Linux环境中的CentOS 7.X以上版本 + 阿里云ES

步骤: