基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
来源:互联网 发布:mac截图怎么保存 编辑:程序博客网 时间:2024/06/05 22:40
介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker在部署软件方面解决了最困难的问题,将应用程序代码开发和部署环境。在不同平台之间移植代码变得很简单,因为我们的应用程序代码是被包装在Docker环境中。
Docker和虚拟机VM的区别
虚拟机(vm)是一个了不起的工具,它有助于进一步抽象运行时环境的物理硬件。 但不幸的是在启动和执行,有一个非常陡峭的性能损失。vm的大部分问题的原因是因为重复,想想linux操作系统的结构,有一个清晰的分离, Linux内核负责管理深层网络和线程等任务和内核之外的一切的用户空间。
virtualbox 和 VMware 等传统虚拟机运行在用户空间, 传统的VM启动一个实例时,它携带了一个Linux内核和在现有的用户空间内的一个用户空间。
这就是重复发生的地方,为什么要在用户空间再启动一个Linux内核呢?而不是使用已经有的内核?下面是Docker的示意图:
Docker启动一个实例时,它会将用户空间和所在主机的Linux内核连接,因此启动只需要毫秒,性能是97%。具体了解Docker推荐一篇文章《Docker:VM、代码迁移和SOA解决方案》,可在我资源里下载。
Docker关键词
- 镜像是 Docker 应用的静态表示,是应用的交付件,镜像中包含了应用运行所需的所有依赖:包括应用代码、应用依赖库、应用运行时和操作系统。
- Dockerfile 是一个描述文件,描述了产生 Docker 镜像的过程。
- 容器是镜像运行时的动态表示,如果把镜像想象为一个 Class 那么容器就是这个 Class 的 instance 实例。
一个应用 Docker 化的第一步就是通过 Dockerfile 产生应用镜像。
安装
我电脑是Mac,使用官网推荐Docker Toolbox自动安装Docker所需要的周边软件,包括:
- VirtualBox
- Docker客户端
- Docker Compose通过DockerFil文件一键部署
- Kitematic 一个Docker和Docker Hub的GUI客户端
- Docker Machine 用于帮助用户创建的Docker主机,默认是default
考虑官网下载太慢了,建议去DaoCloud上下载并按照教程安装(http://docs.daocloud.io/faq/install-docker-daocloud),同时,操作上有时可能是网速问题,得不到及时响应,所以可以多试几次。
MacX应用Docker扩展
MacX通过docker-machine在一个Linux虚拟机中运行Docker Daemon。docker-machine是用来创建和管理Linux虚拟机(Docker Daemon运行的基础)的工具,MacX使用Oracle VM VirtualBox来虚拟Linux,这里需要注意oracle VM VirtualBox的版本最好为4.3版本,我在部署过程中使用最新的Oracle VM VirtualBox5.0,发现跟着官方文档往下无法启动default虚拟机,具体原因Google一堆,目前没有查清楚。(引自作者zhoujingk_49)
总结
Docker非常适合SOA的微服务架构,每一个单独的Dockerfile代表一个微服务,这些微服务是不同与在SOA范围内的传统服务。 传统的服务通常是整体性的,很难被分割和碎片化, Micro-services专注于非常小的、可重用的组件,尽可能少知道他们所处的环境。 Docker提供工作的隔离,可以部署在任何地方执行小micro-services。
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(四)-Spring Cloud总结
- Spring Boot和Spring Cloud微服务架构学习(五)-Docker总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(二)-Spring Boot总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(二)-Spring Boot总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(二)-Spring Boot总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(二)-Spring Boot总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(二)-Spring Boot总结
- 基于Spring Boot和Spring Cloud实现微服务架构学习(六)-Docker应用
- [POI2007]洪水pow bfs
- 微信小票打印机接口怎么写 微信餐饮外卖订餐系统对接流程
- 【FZU
- C Clion开发工具注册码
- Hbase详解(下)
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- Android APK 版本更新的下载和安装 直接上代码
- Quartz学习6:Quartz在Spring中如何动态配置时间
- 无向带权图的最小生成树算法——Prim及Kruskal算法思路
- leetcode 第一题:使用哈希表解决
- 141.linked list cycle
- Time To Get Up
- 使用VS2015的Visual Studio Installer打包
- Spring 集成JediisCluster【redis使用】