作用

  1. 环境一致性: Docker允许您在开发、测试和生产环境之间创建一致的运行时环境。这确保了应用程序在不同阶段保持一致,减少了因环境差异而导致的问题。
  2. 轻量级: Docker容器共享主机操作系统的内核,因此它们相对较轻量。相比于虚拟机,容器更容易启动、停止和迁移,占用更少的系统资源。
  3. 快速部署: Docker容器可以在几秒钟内启动,这大大缩短了应用程序部署的时间。这对于实现持续集成和持续部署 (CI/CD) 流程非常有益。
  4. 可伸缩性: Docker容器可以根据负载的需求进行水平或垂直扩展。这种灵活性使得应对不同规模的工作负载变得更加容易。
  5. 版本控制: Docker允许您使用Dockerfile定义应用程序的环境和依赖关系。通过版本控制这些文件,您可以确保在不同时间点构建相同的环境,以便更轻松地进行回滚或迁移。
  6. 资源隔离: 每个Docker容器都有自己的文件系统、进程空间和网络空间,提供了有效的资源隔离。这有助于防止一个容器的问题影响到其他容器或主机系统。

举个例子,我们正在开发一个 Java 项目,我们可以将项目用到的中间件环境一起打包成一个镜像文件,打包好的镜像文件在任何支持 Docker 的环境都能够正常运行。

原理简介

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

https://vuepress.mirror.docker-practice.com/assets/img/virtualization.bfc621ce.png

https://vuepress.mirror.docker-practice.com/assets/img/docker.20496661.png

一段话介绍

Docker是一种比虚拟机更轻量的容器化平台。通过 Docker 可以将应用与其所需的库和环境打包成一个Docker容器,确保在不同的系统和环境中都能以相同的方式运行。Docker 和虚拟机最大的区别在于容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

Docker 解决的问题