执行docker-compose up --build重建镜像后创建时间未更新问题咨询
问题原因及解决方法
根因分析
该问题与构建缓存无直接关联,核心是Docker Desktop 底层虚拟机时间与宿主机不同步导致,属于Windows/macOS平台Docker Desktop的已知常见问题:当宿主机进入休眠后再唤醒,Docker运行依赖的Linux虚拟机内部时钟会停止计时,与实际时间产生偏差,所有新构建镜像的创建时间都会继承虚拟机的错误系统时间,你遇到的6小时偏差与休眠时长/时区差值吻合。
另外你的docker-compose配置存在次要影响:两个服务共用attachment-loader:latest镜像标签,构建过程中如果旧标签未被正确覆盖,可能出现误用旧镜像的情况。
验证方法
执行命令docker run --rm alpine date,对比输出时间与当前本地时间是否一致:
- 时间不一致:确认是虚拟机时间偏移问题
- 时间一致,且执行
docker images attachment-loader:latest命令行显示的创建时间正确,仅Docker Desktop UI显示错误:属于Docker Desktop UI缓存问题
解决办法
- 临时修复(无需重装Docker Desktop):
右键系统托盘Docker图标选择「重启」即可同步虚拟机时间,Windows WSL2后端用户也可执行wsl --shutdown关闭WSL虚拟机后再重启Docker。 - 永久规避方案:
- 每次构建前执行
docker image rm -f attachment-loader:latest手动删除旧镜像标签,避免标签复用导致的旧镜像误用 - 构建时添加
--no-cache参数,执行docker-compose up --build --no-cache,强制全程重新构建,跳过所有缓存层 - WSL2后端用户可定期执行
wsl -d docker-desktop hwclock -s手动同步Docker虚拟机时间,避免休眠后时间偏移
- 每次构建前执行
内容的提问来源于stack exchange,提问作者Vladislav Ashikhin
相关产品推荐
相关产品推荐

