docker volume over fuse : 传输端点没有连接。

问题描述 投票:1回答:1

所以我有这个远程文件夹 /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这给我的应用程序带来了停机时间,因此不是一个可接受的解决方案。

所以我的问题是。

  1. 这是不是一个docker的 "bug",当挂载的文件夹再次可用时,不能重新连接到它?

  2. 我可以手动执行这个任务,而不必重新启动整个容器吗?

谢谢你

docker docker-volume fuse
1个回答
0
投票

我可以试试下面的解决方案。

如果你把卷挂载到你的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 容器内

© www.soinside.com 2019 - 2024. All rights reserved.