初识Docker

什么是Docker

大型项目组件多,环境杂,部署问题:

  • Q1-依赖关系复杂,兼容性问题
  • Q2-开发、测试、生产环境差异

image.png
Docker解决Q1:

  • 将应用的Libs、Deps、配置与应用打包
  • 将每个应用放到隔离容器运行

image.png
Dokcer解决Q2?

  • 将用户程序与所需调用的系统(比如Ubuntu)函数库一起打包
  • Dokcer运行不同操作系统时,直接基于打包的库函数,借助系统Linux内核运行

总结:
Docker是一个快速交付应用、运行应用技术

  1. 可将程序及依赖、运行环境打包为镜像,迁移到任意Linux系统
  2. 运行时用沙箱隔离容器,各应用互不干扰
  3. 启动、移除都可通过一行命令完成,快捷

Docker与虚拟机

image.png

特性 Docker 虚拟机
性能 接近原生 性能较差
硬盘占用 一般MB 一般GB
启动 秒级 分钟级

Docker架构

镜像(Image):Docker将应用程序及所需依赖、函数库、环境、配置等文件打包一起,称为镜像
容器(Container):镜像中应用程序运行后形成的进程就是容器,Docker对容器做隔离,对外不可见
DockerHub:是Docker镜像的托管平台,类似的服务器统称为DockerRegistry。

Docker是CS架构程序:

  • 服务端:Docker守护进程,负责处理Docker指令,管理镜像、容器等
  • 客户端:通过命令或RestAPI向Docker服务端发送指令。可从本地或远程向服务端发

image.png