(1 | Docker学习和简介)

1 学习来源

  • 本系列笔记学习主要参考书籍《Docker-从入门到实践》以及结合官网的教程,仅作为个人学习使用;
  • 推荐大家阅读此书,感谢作者的书籍,学到了很多。

2 官方学习资源

3 Docker简介

3.1 Docker是什么?

  • Docker 开源的应用容器引擎,使用 Go 语言 进行开发实现;
  • 基于 Linux 内核的cgroupnamespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离;
  • 属于 操作系统层面的虚拟化技术;
  • 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器;
  • 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器;
  • 是实现容器技术的一种工具;
  • 还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔 离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻 便、快捷

3.2 Docker应用场景

  • Web 应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 组建微服务架构,通过多个容器,一台机器可以跑多个服务,因此在本机可以模拟出微服务架构。

3.3 Docker架构

  • 架构图:

在这里插入图片描述

架构图包含:客户端Client、Docker daemon、仓库Registry; 输入命令的工具称之为客户端Client,当在客户端输入命令时,命令会发送到docker所在主机的daemon进程,由该进程执行命令。当执行的是创建容器的命令时,如果对应的镜像不存在于本地,那么daemon会向远程docker仓库请求下载镜像,等镜像下载到本地后在创建容器。

  • 命令图:

在这里插入图片描述

3.3 Docker的优势

优势 说明
更高效的利用系统资源 不需要进行硬件虚拟以及运行完整操作系统等额外开销
更快速的启动时间 运行于宿主内核,无需启动完整的操作系统
一致的运行环境 提供了除内核外完整的运行时环境,确保了应用运行环境一致性
持续交付和部署 定制应用镜像来实现持续集成、持续交付、部署。
更轻松的迁移 在多平台上运行
更轻松的维护和扩展 分层存储以及镜像的技术

3.3 与传统虚拟机的区别

在这里插入图片描述

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为 MB 一般为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个