Docker 入门教程之应用介绍
2021-08-07 本文已影响0人
phpworkerman
什么是 Docker
Docker 是一个开源的、基于 Linux 容器技术,用于创建和容器化应用的程序。
什么是容器
容器是与系统其他部分隔离开的一系列进程。Linux 容器技术最早出现于2000年,它通过 cgroups(控制组)和 namespace(命名空间)两种技术对系统进程进行隔离。容器是由镜像文件构成,内部具备应用运行的所需依赖和配置,具备良好的移植性。
容器的作用
不同的系统平台、开发环境和配置会为应用部署带来很大的不一致性,增加团队的部署、开发和调试成本。容器通过自身的可移植性和隔离性,既加快了应用部署速度,又解决了一致性问题,降低了系统出错的风险。
容器和虚拟化技术的对比
容器和虚拟化技术(虚拟机)非常相似,但实现原理不同。
- 容器是虚拟化操作系统,实现容器和其它系统进程之间的隔离,但是共享系统内核
- 容器更加轻量化,占用资源少,启动时间快
- 因为容器共享系统内核,所有并没有做到硬件级别的隔离,会有一定的安全隐患
image.png
- 虚拟化是虚拟硬件,拥有完整的操作系统,可以访问底层硬件
- 虚拟化体量重,占用资源多,拥有完整的 Boot 引导程序,启动时间慢
- 隔离级别最高,安全性较好
Docker 容器安全性
Docker 容器虽然有很多优势,但它的一些特点亦是产生安全隐患的地方。
- 基础镜像文件需要保证安全性
- 官方镜像仓库 Docker Hub 个人可以上传应用,所以并不能保证所有应用都是安全的
- dockerfile 文件中的恶意执行命令
- 容器隔离问题,系统内核共享机制导致隔离级别无法保证最高
Docker 发展概况
Docker 最早是做为 dotCloud 公司 PaaS 业务容器服务而存在的,该公司早期经营情况并不乐观,随后团队改变经营策略,在2013年将 Docker 在 github 开源后,获得越来越多开发人员的关注和青睐,名声大噪。经过数年的发展,Docker 已经成为容器化市场的主流选择,虽然现在有其它的竞品存在,例如,CRI-O、rkt 等,但短期内依然无法撼动 Docker 的市场地位。