向您推荐
欢迎加入QQ技术交流群:300139299
Docker是软件工程中的集装箱技术
- Docker是一个虚拟化的容器技术,它轻巧,且易移植,“build once, configure once and run anywhere”。
集装箱
传统行业集装箱 | 软件行业Docker |
---|---|
装载实体货物 | 装载系统层,服务层,应用层软件 |
具有统一的规格,便于搬运 | 运行环境的统一性,重复部署!=重复安装。系统部署=搬运+启动 |
与外界环境隔离 | 在linux中采用namespace技术进行资源隔离,cgroups技术进行资源限制。容器之间互不影响 |
物流仓储系统 | 官方DockerHub,私有仓库,可以导出导入,上传下载 |
Docker简介
传统软件行业中存在的问题
- 软件更新发布低效
- 业务无法敏捷
- 环境一致性,难于保证
- 不同环境之间迁移成本太高
- 软件开发商,交付实施周期长---成本高
docker核心概念一:镜像与容器
docker镜像来源
- Docker Hub官方镜像,国内阿里云等都有对外开放的docker镜像仓库
- 使用Dockerfile自己构建镜像。Dockerfile是代码文件,环境变量,系统依赖软件等的构建描述,将镜像的构建过程固化下来,保证了不重复做环境安装工作。概念上类似于maven的pom.xml。
- 企业私有镜像+私有镜像仓库Docker registry
Docker是不是虚拟机?
答:docker不是虚拟机,docker是一种虚拟化容器技术,他和虚拟机最根本的区别是:docker容器和宿主机共用linux操作系统内核,不会在宿主机上再次建立OS。docker容器的本质是宿主机上的进程,通过namespace资源隔离,cgroups资源限制,使它看上去像是一个独立的虚拟机.
基于上面的原因,docker相对于虚拟机有如下几方面的提升
好处说了这么多,难道就没有什么缺点么?
如果非要说docker的缺点,那就是他的隔离性.虚拟机的隔离性是久经考验的,docker容器目前的隔离级别还达不到虚拟机的程度.所以你会经常看到一种混合的系统,将docker跑在虚拟机里面.但是docker技术在飞速的发展中,社区非常的活跃,笔者认为隔离的安全性问题终将被解决!
Docker组件工作原理图
- Docker Containers负责应用程序的运行,包括操作系统、用户添加的文件以及元数据。
- Docker 镜像是一个只读模板,用来运行Docker容器。
- DockerFile是文件指令集,用来说明如何自动创建Docker镜像。
- Docker Registry是私有的镜像仓库
有了以上的组件,应用的重复部署工作不存在,变成镜像搬运与容器启动工作。
向您推荐
欢迎加入QQ技术交流群:300139299