1.软件开发会经历多个阶段,如开发、测试、生产等,如何保证这些阶段的环境一致?通常人们使用虚拟化技术(如虚拟机)解决,但虚拟化技术存在占用空间资源大等问题。相对来说,docker极大的提高了资源的利用率,可在短时间内大量部署server。
2.为什么使用?
保证不同环境软件版本同步,qa测试环境版本一致,不同组联调集成时一致
3.优势:
极大的提高资源利用率,不独立运行guest OS,启动速度快
更快的开发效率,不需要单独部署环境
不会依赖单一供应商,如oracle,可替代性强
减少环境差异
更快的发现由环境引起的问题
生产中更容易处理问题
4.什么是docker?
打包和部署在container(容器)中的一个工具,container之间相互隔离
5.结构
client: 联系daemon,可以远程连接daemon
daemon: 是一个server,接受client的请求,发送给handler处理
registry: 存储仓库,类似于github,默认使用dockerhub,也可以部署私有registry
6.Docker 微服务教程: http://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.html
Docker 入门教程: http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
Docker文档: https://docs.docker.com/engine/reference/run/#detached-vs-foreground
7.docker image
类似与windows镜像安装盘,包含多个层,使用联合操作系统把所有层联合变成一个单一的读写系统
image如何bulid: 通过一个基础container进行修改变成docker image, 或者从一个干净的操作系统安装程序变成一个docker image
操作记录说明存在dockerfile文件中
8.graphdb管理image之间的关系,使用SQLite,不是一个真正的图数据库
9.docker image & container
类似与类和对象的关系, 可以根据一个docker image 生成多个container
10.namespace隔离两个container的线程和资源
11.
原文:https://www.cnblogs.com/fanshudada/p/10846060.html