1 学习来源
- 本系列笔记学习主要参考书籍《Docker-从入门到实践》以及结合官网的教程,仅作为个人学习使用;
- 推荐大家阅读此书,感谢作者的书籍,学到了很多。
2 官方学习资源
- Docker 官方主页:https://www.docker.com
- Docker 官方博客:https://blog.docker.com/
- Docker 官方文档:https://docs.docker.com/
- Docker Store:https://store.docker.com
- Docker Cloud:https://cloud.docker.com
- Docker Hub:https://hub.docker.com
- Docker 的源代码仓库:https://github.com/moby/moby
- Docker 发布版本历史:https://docs.docker.com/release-notes/
- Docker 常见问题:https://docs.docker.com/engine/faq/
- Docker 远端应用 API:https://docs.docker.com/develop/sdk/
3 Docker简介
3.1 Docker是什么?
Docker
开源的应用容器引擎,使用Go
语言 进行开发实现;- 基于
Linux
内核的cgroup
,namespace
,以及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 |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |