要使本地代码在容器中实时生效,需通过volumes挂载项目目录:项目根目录下放docker-compose.yml,用./:/app挂载;Windows建议用绝对路径如C:/myproject:/app;可分目录挂载源码、配置(只读)和日志;注意容器工作目录须与挂载路径一致。
想让本地代码在容器里实时生效,关键就是用 volumes 把项目目录挂载进去。不需要 rebuild 镜像,改完代码保存,容器里立刻就能看到变化。
挂载方式:用相对路径最方便
把 docker-compose.yml 放在你的项目根目录下(这是硬性要求),然后直接用 . 表示当前目录:
-
./:/app—— 把整个项目目录挂到容器的/app路径 - 确保容器内应用的启动路径、配置路径都指向
/app(比如 Node.js 的WORKDIR /app、Python 的cd /app && python app.py)
Windows 用户注意路径写法
Windows 上不推荐用 .,容易因路径解析出错。建议写成绝对路径:
-
C:myproject:/app—— 注意用正斜杠或双反斜杠,如C:/myproject:/app或C:\myproject:/app - 路径中不要有中文、空格或特殊符号,避免挂载失败
挂载多个目录或文件(常见组合)
开发时经常需要同时挂载代码 + 配置 + 数据目录:
-
./src:/app/src—— 只挂源码,避开node_modules等大目录 -
./config.yaml:/app/config.yaml:ro—— 配置文件设为只读(:ro),防误改 -
./logs:/app/logs—— 日志目录挂载,方便宿主机查看
避免踩坑的两个重点
挂载不是万能的,有些情况会“看似挂载成功但没反应”:
- 如果容器启动后看不到你改的代码,先检查容器内工作目录是否和挂载路径一致(比如挂了
./:/app,但程序却从/usr/src/app启动) - 某些镜像(如官方 Python、Node)默认把代码 COPY 进镜像,挂载会覆盖掉原内容;只要挂载路径正确,覆盖是正常行为,无需额外处理


















