Skip to content

Docker 简介

Docker 是一个开源的应用容器引擎,让开发者可以将应用程序和所有依赖打包到一个轻量级、可移植的容器中,然后在任何支持 Docker 的环境中运行。

Docker的特点

  • 轻量性:由于容器共享宿主机的操作系统内核,它们比传统虚拟机更小且启动更快,解决了传统虚拟化技术资源占用高、启动慢的问题。
  • 可移植性:Docker 容器可以在任何支持 Docker 的平台上运行,无论是本地开发机、物理服务器还是云环境,彻底解决了「在我机器上能跑,线上却不行」的难题。
  • 隔离性:每个容器拥有独立的文件系统、网络和进程空间,确保应用之间互不干扰,避免了传统部署中多个应用共用环境导致的依赖冲突问题。
  • 标准化:Docker 提供统一的接口和工具链,使得构建、分发和运行容器变得简单高效,替代了传统部署中复杂的手动配置流程。

架构图

2025-05-20-20-44-10.png

1 容器(Container)

是 Docker 技术的核心运行单元,它是一种轻量级的虚拟化技术实现方式。与传统的虚拟机不同,容器不需要模拟完整的硬件环境,也不需要运行独立的操作系统内核。容器在运行时与其他容器和宿主机共享操作系统内核,这使得容器启动更快且占用资源更少。

容器之间是相互独立的。每个容器都拥有自己的文件系统、网络和进程空间,确保应用之间不会互相干扰。

2 镜像(Image)

镜像是用于创建容器的模板,它包含了运行应用所需的代码、库和配置文件,用户可以从 Docker Hub 下载现成镜像或自己构建。

3 Dockerfile

是用于定义镜像构建过程的脚本文件,它由一系列指令组成,比如 FROM 指定基础镜像,RUN 执行命令,COPY 复制文件等,Docker 会根据 Dockerfile 的指令自动构建镜像。

4 镜像仓库(Image Repository)
用于集中存储和分发镜像的地方,最常用的公共仓库是 Docker Hub,它提供了大量官方和社区维护的镜像。

Docker 容器和虚拟机的具体区别

Docker 容器:使用 Docker 引擎进行调度和隔离,直接共享宿主机的操作系统内核,不需要额外的操作系统层,这使得容器启动更快、占用资源更少。

虚拟机:通过 Hypervisor 软件模拟完整的硬件环境,管理每个虚拟机中操作系统的运行。每个虚拟机需要运行独立的操作系统、应用程序和必要的依赖文件等,因此启动速度慢且占用大量内存和存储。 虚拟机的隔离性更强,因为每个虚拟机有完全独立的操作系统,适合运行需要强隔离的不同类型应用。Docker 的隔离性主要依靠 Linux 内核的命名空间和控制组功能,虽然隔离程度不如虚拟机,但对于大多数应用场景已经足够。

Docker 和虚拟机对比如图所示:

2025-05-20-20-47-43.png

最近更新