第一篇:Docker 到底是什么?为什么要用 Docker

举报
yd_220371319 发表于 2026/09/09 15:18:48 2026/09/09
【摘要】 # Docker 到底是什么?为什么要用 Docker## 开场“为什么我的电脑上能跑,换一台服务器就跑不了了?”这个问题可能比 Docker 本身更值得理解。一个程序真正运行起来,除了代码,还依赖运行时、系统库、环境变量、配置文件等。Docker 的核心思路,就是把应用以及它需要的运行环境一起打包,让它尽可能在不同机器上保持一致。## Docker 和虚拟机有什么区别虚拟机通常需要完整的 ...


“为什么我的电脑上能跑,换到服务器上就跑不了了?”

相信不少人都遇到过这个问题。

程序本身可能没问题,但换一台机器之后,Python 版本不一样、Node.js 版本不一样、缺少系统依赖,甚至连环境变量都不一样。

于是我们经常会看到这样的部署过程:


安装运行环境
↓
安装各种依赖
↓
修改配置
↓
上传代码
↓
启动程序
↓
发现报错
↓
继续补依赖

Docker 解决的,正是这类问题。

Docker 是什么?

简单来说,Docker 可以把应用程序以及它运行所需要的一部分环境打包起来,然后以容器的形式运行。

例如一个 Node.js 项目:


Node.js
npm 依赖
项目代码
配置
启动命令

都可以通过 Docker 统一管理。

这样换到另一台安装了 Docker 的服务器之后,就不需要重新手动搭建一遍环境。

Docker 和虚拟机有什么区别?

很多刚接触 Docker 的人都会把 Docker 和虚拟机放在一起比较。

虚拟机更像是:


物理服务器
└── 虚拟机
    └── 完整操作系统
        └── 应用

而容器通常是:


物理服务器
└── 操作系统
    └── Docker
        └── Container
            └── 应用

容器共享宿主机的 Linux 内核,因此通常比完整虚拟机更加轻量,启动速度也很快。

但需要注意:

Docker 容器并不是一个“更小的虚拟机”。

两者的隔离机制和底层实现并不一样。

三个概念先记住

Docker 里面最常见的三个概念:

Image

镜像。

可以把它理解成一个应用运行环境的模板。

Container

容器。

镜像启动之后,就产生了一个正在运行的容器。

可以简单理解:


Image
  ↓ docker run
Container

Registry

镜像仓库。

负责存储和分发 Docker 镜像。

最常见的就是 Docker Hub。

跑第一个容器

安装好 Docker 后,可以直接执行:


docker run hello-world

如果本地没有 hello-world 镜像,Docker 会先把它拉下来,然后创建并启动容器。

第一次看到这个流程时,可能会觉得:

“这不就是下载了个程序然后运行吗?”

其实这背后已经包含了 Docker 最核心的一套机制:


Registry
   ↓
Image
   ↓
Container
   ↓
Process

Docker 真正解决的问题

Docker 最有价值的地方,其实不是让命令少打几个。

它真正解决的是:

环境标准化。

以前部署一个应用可能需要:


服务器
├── Java
├── Node.js
├── Python
├── 系统依赖
├── 配置文件
└── 应用程序

Docker 化之后,可以变成:


服务器
└── Docker
    └── 应用容器

这也是为什么 Docker 会成为现代开发和部署环境中非常常见的一项技术。

下一篇,我们开始真正研究 Docker 的核心——镜像。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。