登录
No.28核心2 条来源

Docker

课堂投屏

一句话

Docker 把程序和它的依赖、配置打包成镜像,再以相互隔离的容器运行,换台机器也能照样跑。

大白话

Docker 像标准集装箱:货物连同包装一起装进统一尺寸的箱子,不管上哪条船、到哪个码头,吊装和堆放的方式都一样,不用每次重新打包。

比喻的边界

集装箱里的货跟着箱子走,容器里写入的数据却会随容器删除而消失,要长期保存得另外挂载存储;密钥也不该直接封进箱子里。

拿去就能用

开始做

我想用 Docker 运行,方便部署到服务器。帮我写一个 Dockerfile,逐行解释它在做什么,说明镜像怎么构建、容器怎么启动、端口怎么映射。密钥用环境变量传入,不要写进镜像。

还差:我的项目,发给 AI 前记得换掉

出错了

我把数据库容器删掉重新 docker run 了一次(或者 compose down 之后再 up),之前存的数据全没了。我怀疑没有挂载数据卷,数据只存在旧容器里。先帮我查当前容器的挂载情况确认,再给持久化方案。删除或重建容器的步骤先告诉我影响,等我确认。

想做深

我的项目有前端、后端和数据库,每次要分别启动三个容器。帮我用 docker-compose 写到一个文件里,说明服务之间怎么互相访问、数据存在哪里。先给配置让我看懂,再运行。

别这样说 → 这样说

别这样说

Docker 启动了但访问不了,你帮我看看。

这样说

我用 docker run 启动了后端容器,docker ps 显示它在运行,但浏览器打开 localhost:8000 连不上。启动命令和容器日志贴在下面。帮我先检查端口映射和程序监听的地址,确认原因再改。

差别:给出了命令、运行状态和日志,并指明了先查的方向。

容易误解:

误解容器就是一台小虚拟机,里面有完整的操作系统。

其实是容器是隔离运行的进程,和宿主机共用同一个内核,所以启动快、占用少,和虚拟机不是一回事。

展开专业理解

镜像是包含程序、依赖和配置的标准包,一般由 Dockerfile 一步步构建,建好后不能修改,只能构建新镜像;容器是镜像运行起来的实例,多个容器共享宿主机内核。容器里的 localhost 指容器自己,外部访问要做端口映射;要保留的数据放数据卷,配置和密钥在运行时注入。

来源

  1. Docker Docs:What is a container? 核对于 2026-09-26
  2. Docker Docs:What is an image? 核对于 2026-09-26