认识docker
文章目录
docker的目的
职责的逻辑分离
保证开发环境和运维部署环境的一致性,降低“开发一切正常,肯定是运维问题”的风险。
提供简单轻便的建模方式
用户很简单就可以实现自己的程序容器化,同时docker依赖写时复制技术,能够快速的修改我们的程序,随后我们就可以启动容器,一台宿主机可以运行很多容器,同时资源的小号也很低。
快速高效的开发生命周期
缩短从开发->测试->部署->运行周期,让应用具备可移植性、易于协作、易于构建
鼓励使用面向服务的架构
docker鼓励一个容器只运行一个应用程序或者进程,形成一个分布式的应用程序模型。这种模型下应用程序或服务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序、扩展和调试应用程序都变得相对简单。
docker的组件
docker客户端和服务器
docker镜像
镜像是构建docker世界的基石,用户基于镜像运行容器,它体积小、容易分享存储携带。可以理解镜像是容器的“源代码”。
镜像就是一个只读的模板,它可以用来创建Docker容器,一个镜像可以创建很多容器。如果类比java的话,它就像是一个java类,而容器就是它的实例化对象。
docker仓库
仓库Repository和仓库注册服务器Registry是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库又包含了多个镜像,每个镜像又还有不同的标签tag。仓库分为公开仓库和私有仓库。最大的公开仓库是Docket Hub,但是我们还是用阿里云因为Docker Hub是国外的网速慢。
还可以自己构建docker仓库
docker容器
Docker利用容器独立运行一个或一组应用,容器是用镜像创建的运行实例,它可以被启动、开始、停止、删除,每个容器都是相互隔离、保证安全的平台。
可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的同意视角,唯一区别在于容器的最上层是可读可写的。
我们能用docker做什么
1.加速本地开发和构建流程,地开发人员可以运行并分享docker容器
2.能够让独立服务或者应用在不同的环境中得到相同的运行结果
3.创建隔离的环境进行测试
4.开发者一开始就简单的在本机上构建一个复杂的程序进行测试。
5.构建一个多用户的平台即PaaS基础设施
6.提供软件即服务
7.高性能、超大规模的宿主机部署
docker的优势
- 轻量,秒级的快速启动速度
- 简单、易用、活跃的社区
- 标准统一的打包/部署/运行方案
- 镜像支持增量分支,易于部署
- 易于构建,良好的REST API,也很适合自动化测试和持续继承
- 性能,尤其内存和IO的开销