Hubic(オンラインストレージ)をマウントするためのDockerイメージを実行し、それをホストに公開しようとしています
これまでに機能しているのは、Fuseポイントを正しくコンテナにマウントすることです(/mnt/hubic
へ)。
Dockerを実行しているときに/path/on/Host:/mnt/hubic
としてマップされたボリュームで実行しようとしていますが、これは機能するようです(つまり、dockerが存在しない場合はディレクトリを作成します)。ただし、コンテンツは表示されません。コンテナーに入ると、オンラインストレージからファイルを表示できますが、ホストフォルダーには何も含まれていません
Dockerがこれを行うためのオプションがありませんか?
コンテナーを開始するために使用しているコマンド
docker run -v ~/.hubicfuse:/root/.hubicfuse -v /tmp/mounted:/mnt/hubic --device /dev/Fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined -it {container_name}
解決策は投稿に由来します s3がコンテナー内にマウントされています。ホストに公開する方法は?
この投稿では、glusterFS
を使用するソリューションについて説明します。コンテナに対してより多くの権限が必要です。使用されるdockerコマンド:
docker run --cap-add SYS_ADMIN --device Fuse -v Host_mount_dir:container_mount_dir:shared IMAGE COMMAND
「パス/ fooは/ fooにマウントされていますが、共有マウントではありません...」のようなエラーの場合、その理由は、Dockerデーモンがsystemdとは異なるマウント名前空間で実行されるためです。これは、同じ名前空間で実行するためのソリューションです。
mkdir -p /etc/systemd/system/docker.service.d/
cat <<EOF > /etc/systemd/system/docker.service.d/clear_mount_propagation_flags.conf
[Service]
MountFlags=shared
EOF
そして、Dockerデーモンを再起動します。
注釈は、-v
によってバインドされたディレクトリにマウントされた場合、マウントはホスト上で認識されるということです。