Skip to content

🐳 Docker 简介

什么是 Docker?

想象你要搬家——从北京搬到上海。传统方式是把家具一件件拆开、打包、运输、再组装。而 Docker?Docker 就是一个标准化的集装箱:你把整个房间(包括家具、电器、甚至墙上的画)原封不动地装进集装箱,搬到新地方,打开门,一切都在,一切都能用。

在技术世界里,Docker 是一个容器化平台,它让你可以把应用程序和它的所有依赖(库、配置文件、运行时环境)打包成一个轻量级的、可移植的"容器",在任何支持 Docker 的机器上都能跑起来。

💡 提示: 💡 一句话总结:Docker 解决了"在我电脑上能跑啊!"这个世纪难题。

为什么需要 Docker?

假设你在开发一个 Python Web 应用:

  • 你的电脑是 Python 3.11,服务器是 Python 3.8
  • 你用 Ubuntu,同事用 macOS,测试服务器是 CentOS
  • 你装了 Redis 7.0,生产环境是 Redis 6.2

结果?"在我电脑上能跑啊!"——经典名场面。Docker 让所有人、所有环境都用同一个集装箱,彻底告别环境不一致的问题。

虚拟机 vs 容器

很多人会问:虚拟机不也能做到吗?能,但就像用大炮打蚊子。来看对比:

对比项虚拟机 (VM)容器 (Docker)
比喻一栋独立别墅公寓里的一个房间
启动时间分钟级(要盖房子)秒级(开门就行)
占用资源GB 级(每个 VM 都有完整 OS)MB 级(共享宿主机内核)
隔离级别完全隔离(硬件级别)进程级别隔离
密度一台物理机跑几十个 VM一台物理机跑成百上千个容器
镜像大小几 GB几 MB 到几百 MB

Docker 三大核心概念

1. 镜像 (Image)

镜像就是集装箱的设计图纸——它是一个只读的模板,包含了运行应用所需的一切。你可以从 Docker Hub(镜像仓库)下载别人做好的镜像,也可以自己用 Dockerfile 来制作。

2. 容器 (Container)

容器是根据图纸造出来的集装箱——镜像的运行实例。你可以从同一个镜像启动多个容器,就像用同一个设计图造出很多个集装箱。

3. 仓库 (Registry)

仓库就是集装箱的堆场——存放镜像的地方。Docker Hub 是最大的公共仓库,你也可以搭建私有仓库。

📝 备注: 📝 记忆口诀:镜像是菜谱,容器是做出来的菜,仓库是放菜谱的图书馆。