01-初识Docker

Rangle / 2024-08-06 / 原文

1.常规应用部署面临的问题

  • 部署流程复杂
  • 环境不一致
  • 资源隔离问题
  • 交付流程复杂
1)Java WEB架构:代码打包——>上传镜像仓库——>镜像下载至服务器——>服务器运行镜像
2)Java Spingboot一体式架构:代码打包——>上传镜像仓库——>镜像下载至服务器——>服务器运行镜像
3)Java Cloud 微服务架构:代码打包(多个应用一起)——>上传镜像仓库——>镜像下载至服务器——>服务器运行镜像

2.Docker概述

  • 发展史:docker(moby)诞生于2013年,是一种基于Linux LXC容器化技术的开源容器引擎。2017年docker con大会划分为Docker EE(企业版)和Docker CE(社区版,即moby)。
  • 概念:
    • docker引擎:docker,用于管理容器的生命周期。
    • docker容器:container,用于软件的运行环境。
    • 镜像:image,软件的安装包,包含容器运行的内容以及配置信息。
    • 镜像仓库:registry,用于存储镜像,对镜像进行统一管理。

3.Docker作用

  • 资源隔离:避免环境变量对应用的影响,避免CPU/内存等硬件资源的争抢
  • 高效:优化部署流程和交付流程
  • 标准化:可在不同平台上直接部署

4.Docker和虚拟机区别

  • Docker:占用资源小,启动快

  

   

  • 虚拟机:隔离性好,占用资源大,启动慢

  

  

5.Docker架构

 Docker是C/S架构,即Client/Server架构

  • Docker Client:向服务端发起请求,如下载镜像、容器生命周期管理
  • Docker Demon:后台守护程序
    • Docker Server:服务端,接收请求
    • Engine:负责执行具体任务
  • Docker Registry:镜像仓库(dockerhub/阿里云镜像仓库),用于存储镜像,用户相关信息