文章目录
什么是Docker?
- 是一种轻量级的“虚拟机”
- 在linux容器里运行应用的开源工具
官网:www.docker.com
官方文档网站:www.docs.docker.com
一、docker概述
1、Docker概念
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
- 镜像
- 容器
- 仓库
2、Docker设计的目标
- 提供简单的应用程序打包工具
- 开发人员和运维人员逻辑分离
- 多环境保持一致性
3、docker的应用场景
-
打包应用程序简化部署
-
可脱离底层硬件任意迁移
-
应用程序打包和发布
-
应用程序隔离
-
持续集成
-
部署微服务
-
快速搭建测试环境
-
提供PaaS产品(平台即服务)
4、Docker的组成
- Docker Client:客户端
- Docker Daemon:守护进程
- Docker Images:镜像
- Docker Container:容器
- Docker Registry:镜像仓库
客户端,客户操作的界面环境——会与守护进程daemon对接——下达指令创建镜像,可以直接执行,也可以从仓库中直接拉取到本地然后下载(防火墙原因,所以下载需要用第三方加速器,如阿里云加速器)
不同的镜像制作不同的容器,会提供一个端口,通过端口可以访问应用容器
彼此应用间是隔离的,也就是解耦
具备弹性伸缩
5、docker与虚拟机的区别
vm→物理环境→宿主系统(linux)→虚拟化监控平台(加载虚拟化资源:硬盘 网卡 内存)→安装系统(完整的主机)
容器→物理环境→宿主系统(linux)→docker引擎(进程的管理机制)
docker 与宿主系统共享内核资源,如果某个容器资源悲情如,很容易影响到宿主系统,则会影响到其他的应用
面试中的注意点:
VM | Container容器 | |
---|---|---|
启动速度 | 分钟级 | 秒级 |
运行性能 | 5%左右损失 | 接近原生 |
磁盘占用 | GB | MB |
数量 | 一般几十台 | 成百上千 |
隔离性 | 系统级(更彻底) | 进程级别 |
操作系统 | 几乎所有 | 主要支持linux |
封装程度 | 完整的操作系统 | 只打包项目代码和依赖关系,共享宿主机内核 |
6、支持平台
- Linux(CentOS,Debian,Fedora,Oracle Linux,RHEL,SUSE和Ubuntu)
- Mac
- Windows