容器概念

  • 容器是一种轻量级, 可移植, 自包含的软件打包技术, 使应用程序可以在几乎任何地方以相同的方式运行.
  • 容器与虚拟机的区别在于, 所有容器共享一个hostOS, 应用程序需要的库或者其他软件容器在Host操作系统的用户空间中运行, 无需为每个应用安装一个独立的操作系统, 因此容器体积上更小, 部署和启动速度更快, 开销更小

容器解决什么问题

  • 容器使软件具备了超强的可移植能力
  • 消除了开发, 测试, 生产环境的不一致性

容器工作原理

Docker采用C/S架构, 客户端向服务器发送请求, 服务器负责构建, 运行和分发容器, 客户端和服务器可以运行在同一个Host上, 客户端也可以通过socket或REST API与远程的服务器通信
image.png

Docker的核心组件

  • Docker 客户端, 最常用的Docker客户端是docker命令
  • Docker服务器, Docker daemon是服务器组件, 以Linux后台服务的方式运行,

Docker Daemon运行在Docker host上, 负责创建, 运行, 监控容器, 构建存储镜像, 默认情况下, Docker Daemon只能响应来自本地Host的客户端请求, 如果要允许远程客户端请求, 需要在配置文件中打开TCP监听.
image.png

  • Docker镜像, 可将Docker镜像看成只读模板, 通过它可以创建Docker容器
  • Docker容器, Docker容器就是Docker镜像的运行实例, 用户可以荣国CLI或是API启动, 停止, 移动或是删除容器, 对于应用软件, 镜像是软件生命周期的构建和打包阶段, 而容器则是启动和运行阶段
  • Registry, Registry是存在Docker镜像的仓库, 分公有和私有, Docker Hub是默认的Registry, 由Docker公司维护