真正高效的做法是用 docker-compose up --build 一键重建,自动检测变更、构建镜像并替换容器,跳过手动 stop→rm→build→run 四步;配合 --no-cache 强制刷新缓存,或指定服务名如 web 精准重建。
快速重建 Docker 容器,核心不是“删了再建”,而是跳过冗余步骤、复用已有资源、精准触发更新。真正高效的做法,往往一条命令就能完成,而不是手动 stop → rm → build → run 四步走。
这是开发阶段最常用、最省心的方式。只要你的服务在 docker-compose.yml 中定义了 build: 路径(比如 build: ./app),就无需手动构建镜像。
docker-compose up --build -d:自动检测代码或 Dockerfile 变更,重新构建对应服务镜像,并启动新容器(旧容器会自动停止并替换)--no-cache 强制跳过所有缓存,适合依赖更新或调试构建逻辑时使用:docker-compose up --build --no-cache -d
docker-compose up --build -d web
频繁构建时,基础镜像(如 node:18、python:3.11)不用每次都下载。Docker 默认会复用本地已有的层。
FROM 指令用的是带明确标签的镜像(如 FROM nginx:1.25-alpine),避免用 latest 导致意外更新和缓存失效docker pull nginx:1.25-alpine,后续构建会自动用上新层当你已经通过 docker build 或 CI 流水线生成了新镜像,就不必再走 compose 构建流程。
docker build -t myapp:v2.1 .
docker stop myapp && docker rm myapp && docker run -d --name myapp -p 8080:80 myapp:v2.1
--restart unless-stopped 启动,这样即使宿主机重启,容器也会自动恢复对开发中的应用(如 Node.js、Python Flask),根本不需要重建容器——直接挂载本地代码目录,改完保存就生效。
-v $(pwd)/src:/app/src 把源码映射进容器