Aug*_*ger 8 fuse docker docker-volume
所以我/mnt/shared用保险丝安装了这个远程文件夹。大部分情况下都是可用的,只是偶尔会出现断线的情况。
/mnt/shared重新连接时,实际安装的文件夹将再次可用。
问题是我将此文件夹放入 docker 卷中以使其可供我的应用程序使用:/shared。当我启动容器时,该卷可用。
但是,如果在两者之间发生断开连接,虽然/mnt/shared主机上的存储库可用,但/shared无法从容器访问该文件夹,我得到:
user@machine:~$ docker exec -it e313ec554814 bash
root@e313ec554814:/app# ls /shared
ls: cannot access '/shared': Transport endpoint is not connected
Run Code Online (Sandbox Code Playgroud)
为了让它再次工作,我找到的唯一解决方案是docker restart e313ec554814,这会给我的应用程序带来停机时间,因此不是一个可接受的解决方案。
所以我的问题是:
这是否是一个泊坞窗“错误”,当它再次可用时不会重新连接到已安装的文件夹?
我可以手动执行此任务,而无需重新启动整个容器吗?
谢谢
我会尝试以下解决方案。
如果您像这样将卷安装到 docker 上:
docker run -v /mnt/shared:/shared my-image
Run Code Online (Sandbox Code Playgroud)
我将创建一个中间目录/mnt/base/shared并将其安装到 docker,如下所示:
docker run -v /mnt/base/shared:/base/shared my-image
Run Code Online (Sandbox Code Playgroud)
我还将调整我的代码以引用新路径或创建从容器内部/base/shared到/shared容器内部的链接
解释:
问题是,/mnt/shared当连接断开并且连接恢复后创建新目录时,挂载的目录可能会在主机上被删除。但是,容器开始使用已删除的旧目录的目录映射来运行。通过创建中间目录并映射到它,您可以避免此映射问题。
| 归档时间: |
|
| 查看次数: |
4438 次 |
| 最近记录: |