前言:
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
概要:
- 可以将应用程序自动部署到容器
- 解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术
- docker理念: 一次封装,到处运行【DevOps:开发自运维,一次封装,到处运行】
- 官网:Docker: Accelerated Container Application Development
Docker的基本组成
Docker Client客户端
Docker Daemon守护进程:[- ] Docker是CS架构,Docker客户端向服务器端也就是守护进程发出请求,守护进程处理完所有的工作并返回结果,可以本地访问也可以远程访问
Docker Image镜像
Docker Container容器:通过镜像启动
Docker Register仓库
容器和虚拟机的区别
虚拟机技术是虚拟出一套硬件之后,在其上运行了一个完整的OS,在该系统上运行所需的进程
而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,也没有进行硬件虚拟。因此容器要比传统虚拟机更加轻便
每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源
Linux容器并不是模拟一个完整的操作系统,而是对进程进行隔离。容器将软件运行所需的所有资源打包到一个隔离的容器中。容器和虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此变得高效轻量并保证部署在任何环境中的软件都能运行。
Docker工作流程