所以我有这个远程文件夹 /mnt/shared
装有熔断器。除了时常会有一些断线外,大部分都可以使用。
实际安装的文件夹 /mnt/shared
当重新连接发生时,它又变得可用。
问题是我把这个文件夹放到一个docker卷里,让它对我的应用程序可用。/shared
. 当我启动容器时,该卷是可用的。
但如果中间发生了断开连接,当 /mnt/shared
主机上的repo是可用的。/shared
文件夹无法从容器中访问,我得到了。
user@machine:~$ docker exec -it e313ec554814 bash
root@e313ec554814:/app# ls /shared
ls: cannot access '/shared': Transport endpoint is not connected
为了让它重新工作,我找到的唯一解决办法是: docker restart e313ec554814
这给我的应用程序带来了停机时间,因此不是一个可接受的解决方案。
所以我的问题是。
这是不是一个docker的 "bug",当挂载的文件夹再次可用时,不能重新连接到它?
我可以手动执行这个任务,而不必重新启动整个容器吗?
谢谢你
我可以试试下面的解决方案。
如果你把卷挂载到你的docker上,像这样。
docker run -v /mnt/shared:/shared my-image
我会创建一个中间目录 /mnt/base/shared
并像这样把它挂载到docker上。
ocker run -v /mnt/base/shared:/base/shared my-image
我也会调整我的代码来引用新的路径,或者创建一个链接从 /base/shared
到 /shared
容器内