Docker Bind Mount不同步问题求助:Django与Nginx文件共享异常
问题排查:Docker Bind Mount 数据不同步与容器重启异常
系统架构与配置
我正在构建一套系统:文件通过Django上传,Nginx提供静态文件服务,使用Docker Compose部署,通过bind mount实现容器与主机的数据共享,相关配置如下:
django: volumes: - ./uploads:/app/uploads:rw nginx: volumes: - ./uploads:/app/uploads:ro
异常现象
刚完成上传时一切正常:上传的文件会同步到主机、Django容器和Nginx容器,Nginx能正常提供服务。但一段时间后Nginx开始返回404,手动检查发现主机源目录与容器内目录数据不同步:
主机目录内容(正确):
user@host:/home/user/site/uploads$ ls -la total 13068 drwxr-xr-x 2 root root 4096 Jan 23 19:52 . drwxr-xr-x 10 user user 4096 Jan 23 10:33 .. -rw-r--r-- 1 root root 12527329 Jan 23 01:49 YbqY7GeoNiK.MP4 -rw-r--r-- 1 root root 748081 Jan 23 10:42 dP4va0IpGzM.gif -rw-r--r-- 1 root root 90296 Jan 23 10:52 lKsDoxhDpWE.jpg
Nginx容器内目录内容(新旧文件混合):
user@host:/home/user/site$ docker compose exec nginx sh # cd /app/uploads/ # ls -la total 34372 drwxr-xr-x 2 root root 4096 Jan 23 02:17 . drwxr-xr-x 4 root root 4096 Jan 24 02:01 .. -rw-r--r-- 1 root root 111086 Jan 23 00:27 C4RUNvZTWAZ.jpg -rw-r--r-- 1 root root 9652 Jan 20 12:39 JMMMFzFMzr4.png -rw-r--r-- 1 root root 7434720 Jan 23 02:17 YLrOkzve1ck.exe -rw-r--r-- 1 root root 13810152 Jan 22 15:31 YbqY7GeoNiK.MP4 -rw-r--r-- 1 root root 13810152 Jan 22 15:31 y4qQWUgPTpv.MOV
Django容器内目录内容(与Nginx容器一致,异常):
user@host:/home/user/site$ docker compose exec django sh # cd /app/uploads # ls -la total 34372 drwxr-xr-x 2 root root 4096 Jan 23 02:17 . drwxr-xr-x 1 root root 4096 Jan 24 02:01 .. -rw-r--r-- 1 root root 111086 Jan 23 00:27 C4RUNvZTWAZ.jpg -rw-r--r-- 1 root root 9652 Jan 20 12:39 JMMMFzFMzr4.png -rw-r--r-- 1 root root 7434720 Jan 23 02:17 YLrOkzve1ck.exe -rw-r--r-- 1 root root 13810152 Jan 22 15:31 YbqY7GeoNiK.MP4 -rw-r--r-- 1 root root 13810152 Jan 22 15:31 y4qQWUgPTpv.MOV
容器重启线索
通过docker ps发现容器运行时长低于预期,推测是通过restart: unless-stopped策略崩溃重启:
user@host:/home/user/site$ docker ps CONTAINER ID IMAGE CREATED STATUS 8796a4afcda6 site-nginx 9 hours ago Up 9 hours 7fb35c827d01 site-django 9 hours ago Up 9 hours b8044f3c3c0f site-cron 24 hours ago Up 24 hours 0ba613d35ec3 postgres:15.1-alpine 25 hours ago Up 25 hours
25小时前是最后一次执行docker compose up --build --detach的时间,9小时前大概率是问题出现的时间。按常理容器重启不应导致volume异常,但目前找不到其他线索。
求助问题
- 该如何排查此问题?
- 可能的原因是什么?
- 使用廉价HDD VPS是否会影响?
内容的提问来源于stack exchange,提问作者Enirsa
相关产品推荐
相关产品推荐

