最简单、最清晰、最直白 的方式给你讲清楚,3 条命令的区别,你一看就懂、永远不会忘!
一句话总结
- docker-compose build → 只构建镜像,不启动
- docker-compose up -d → 只启动容器,不重新构建镜像
- docker-compose up -d --build → 先重新构建镜像,再启动
详细大白话解释(超级好懂)
1. docker-compose build
作用:只打包镜像,不启动容器!
- 只去执行 Dockerfile
- 生成新的镜像
- 不会启动任何服务
适合:你只想重新编译代码 / 重新构建镜像,但暂时不想启动。
2. docker-compose up -d
作用:直接启动容器,不重新构建!
- 用已经存在的旧镜像启动
- 不会重新编译、不会重新构建
- 如果你改了 Dockerfile → 不会生效!
适合:镜像没变化,只是想启停服务。
3. docker-compose up -d --build
作用:先重新构建 → 再启动!
- 先执行 build(重新打包镜像)
- 再执行 up -d(启动)
- 你改了代码、改了 Dockerfile、改了配置 → 必须用这条!
适合:**90% 开发场景都用这条!**改了东西想让它生效 → 直接用这条最稳。
最实用记忆口诀(背这个)
- 只想打包 → build
- 只想启动旧的 → up -d
- 改了东西要生效 → up -d --build
对应你现在的场景
你改了 RabbitMQ 的 Dockerfile 想让延迟插件生效 → 必须用这条:
plaintext
docker-compose up -d --build
最终结论(你只要记住这个)
平时开发,一律用:
plaintext
docker-compose up -d --build
最稳、最安全、永远不会用错!