基本认识
最后更新于:2022-04-02 05:43:31
## 前言
本文主要介绍docker的基本认识与学习笔记,建议阅读时间10分钟。
## Docker的应用场景
* Web 应用的自动化打包和发布。
* 自动化测试和持续集成、发布。
* 在服务型环境中部署和调整数据库或其他的后台应用。
* 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
## 优点
1、简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
2、避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。Docker 帮你打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
## 基本认识
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。
![图解docker](http://www.runoob.com/wp-content/uploads/2016/04/576507-docker1.png)
![容器状态图解](https://yeasy.gitbooks.io/docker_practice/content/appendix/_images/cmd_logic.png)
## 通俗理解镜像,容器与仓库
比如我们去买东西,那么超市就是一个仓库,有各种各样的商品可供选择,而镜像就是指分类,比如食盐种类,然后每一袋盐都是一个具体的食盐种类的容器。
那我们的购物袋就相当于自己的计算机,我们根据自己的需要从超市根据种类取一个具体的商品放在自己的购物袋里。
## 更方便拓展与维护
Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。
此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的 [官方镜像](https://store.docker.com/search?q=&source=verified&type=image),既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。
## 与虚拟机对比
| 特性 |容器 |虚拟机 |
|---|---|---|
| 启动 |毫秒级 |分钟级|
| 磁盘使用 |一般为MB |一般为 GB|
| 性能 |接近原生 |弱于|
| 系统支持量 |单机支持上千个容器 |几十个|
## 参考文档
* [docker小册:youming](https://github.com/youmingdot/docker-book-for-developer-samples)
* [docker手册](https://yeasy.gitbooks.io/docker_practice/content/install/)
* [菜鸟教程 -docker](http://www.runoob.com/docker/docker-tutorial.html)
* Docker 官网:http://www.docker.com
* 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/
* Github Docker 源码:https://github.com/docker/docker
';