web-dev-qa-db-ja.com

Fuse上のDockerボリューム:トランスポートエンドポイントが接続されていません

だから私はこのリモートフォルダを持っています/mnt/sharedヒューズ付き。時々切断されることを除いて、ほとんどが利用可能です。

実際にマウントされたフォルダ/mnt/sharedは、再接続が発生すると再び使用可能になります。

問題は、このフォルダーをdockerボリュームに入れて、アプリで使用できるようにすることです:/shared。コンテナーを起動すると、ボリュームが使用可能になります。

ただし、その間に切断が発生した場合、/mnt/sharedホストマシンのリポジトリが利用可能です。/sharedフォルダーにコンテナーからアクセスできません。

[email protected]:~$ docker exec -it e313ec554814 bash
[email protected]:/app# ls /shared 
ls: cannot access '/shared': Transport endpoint is not connected

それを再び機能させるために、私が見つけた唯一の解決策はdocker restart e313ec554814、これは私のアプリにダウンタイムをもたらすため、許容できるソリューションではありません。

だから私の質問は:

  1. これはどういうわけか、それが再び利用可能になったときにマウントされたフォルダーに再接続しないようにするドッカーの「バグ」ですか?

  2. コンテナ全体を再起動せずに、このタスクを手動で実行できますか?

ありがとう

4

私は次の解決策を試します。

次のようにボリュームをドッカーにマウントする場合:

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へのリンクを作成します

0
ofirule