初识Docker
什么是Docker
大型项目组件多,环境杂,部署问题:
- Q1-依赖关系复杂,兼容性问题
- Q2-开发、测试、生产环境差异
Docker解决Q1:
- 将应用的Libs、Deps、配置与应用打包
- 将每个应用放到隔离容器运行
Dokcer解决Q2?
- 将用户程序与所需调用的系统(比如Ubuntu)函数库一起打包
- Dokcer运行不同操作系统时,直接基于打包的库函数,借助系统Linux内核运行
总结:
Docker是一个快速交付应用、运行应用技术
- 可将程序及依赖、运行环境打包为镜像,迁移到任意Linux系统
- 运行时用沙箱隔离容器,各应用互不干扰
- 启动、移除都可通过一行命令完成,快捷
Docker与虚拟机
特性 | Docker | 虚拟机 |
---|---|---|
性能 | 接近原生 | 性能较差 |
硬盘占用 | 一般MB | 一般GB |
启动 | 秒级 | 分钟级 |
Docker架构
镜像(Image):Docker将应用程序及所需依赖、函数库、环境、配置等文件打包一起,称为镜像
容器(Container):镜像中应用程序运行后形成的进程就是容器,Docker对容器做隔离,对外不可见
DockerHub:是Docker镜像的托管平台,类似的服务器统称为DockerRegistry。
Docker是CS架构程序:
- 服务端:Docker守护进程,负责处理Docker指令,管理镜像、容器等
- 客户端:通过命令或RestAPI向Docker服务端发送指令。可从本地或远程向服务端发