前言
大家好,你的月亮我的心,我是博主小阿金,欢迎各位工友。 最近博主自己搞了个前后端分离的项目,现在已经到了部署的阶段了,由于博主以前没有系统的自己部署过项目,现在自己从头到尾来搭建基础得运维环境并且部署到服务器上,本篇来讲一下什么是Docker。
1. Docker是什么
Docker 体系结构
1.1 现在遇到的问题
- 每次部署服务器都需安装依赖、配置环境,麻烦又耗时。
- 应用在不同电脑上运行问题多,因环境或配置差异。
- 开发、测试、生产环境配置不同导致生产bug。
- 服务器硬件常闲置,资源浪费等。
1.2 虚拟机技术
虚拟机使用同一镜像创建多个环境,确保一致性。
1.3 Docker解决方式
Docker与虚拟机类似,将应用及依赖打包成镜像,包含所有内容,如代码、运行环境、工具等。可本地构建镜像并部署到任何地方,无需担心环境差异。
总结: Docker通过容器化技术打包应用程序和所需环境成镜像,解决了环境问题。
2. Docker三要素
- 镜像(image): 静态只读文件,包含应用程序所需内容。
- 容器(container): 镜像的运行实例,提供隔离环境。
- 仓库(repository): 存储镜像的地方,分公有和私有仓库。
使用仓库下载镜像后运行为容器,一个镜像可创建多个容器实例。
3. Docker与虚拟机技术的区别
-
虚拟化层次:
- 虚拟机技术: 使用Hypervisor在物理服务器上创建完整虚拟机。
- Docker: 利用宿主机操作系统内核运行容器,共享内核使其轻量级。
-
资源利用方式
- 虚拟机技术: 每个独立操作系统需更多资源。
- Docker: 共享操作系统内核节省资源,允许多个容器在同一台机器上运行。
-
启动时间和性能
- 虚拟机技术: 长启动时间需完整操作系统。
- Docker: 容器启动速度快,只需应用及依赖项。
-
环境隔离
- 虚拟机技术: 提供完全隔离的环境。
- Docker: 容器提供较好隔离性但略低于虚拟机。
综上所述,Docker相对于虚拟机技术更轻量、高效,并通过容器实现资源共享和隔离,解决了多方面问题。