私はdocker-compose.ymlファイルから作成したボリュームを持っています。ボリュームmy_volumeとそれがmy_containerに関連付けられているコンテナを呼び出してみましょう。私は、ボリュームの内容の削除をスクリプト化したい。以下のすべては、my_containerが停止しているが、削除されていないことを前提としています。ドッカーボリュームの内容をどのように削除しますか?
私が使用して、ボリュームの内容を一覧表示することができます
docker run --rm -v my_volume:/data/ ubuntu ls -la /data
これは動作しますので、次の私が使用してデータフォルダの内容を削除しよう:エラー・メッセージが報告されていない
docker run --rm -v my_volume:/data/ ubuntu rm -rf /data/*
そうすれば正常に表示されますが、ボリュームの内容を再度一覧表示すると、ボリューム内のデータはすべて削除されません。
私はそうのような除去をやって、コンテナを入力して削除を実行できます。
コンテナ内から、その後docker run --rm -it -v my_volume:/data/ ubuntu /bin/bash
:
rm -rf /data/*
これは正常に動作し、内容が削除され、これはスクリプティングが不可能なので目的を破る。私がコンテナの外でそれを使用しようとしたときにrmが動作しない理由と、ボリュームの内容を正常に削除する方法はありますか?ボリュームを削除して新しいボリュームを作成したくないということに注意してください。そうしないと、ボリュームに関連付けられた元のコンテナ/イメージを削除する必要があります。助けてくれてありがとう!
はたぶん、本当にどこを探しているではないが、あなたは、私が試した' RM -rの/ var/libに/ドッキングウィンドウ/ボリューム/ my_volume/_data/* ' – lvthillo
他のものを使用して、ボリュームをクリアすることができます - docker run --rm -v my-volume:/ data/ubuntu rm -rf data/'働いていましたが、デバイスが警告/エラーをビジー状態にしました。別の「解決策」は、すべてを別々に削除していました(ただし、あなたのボリュームに何が含まれているかを常に知っているときにのみこれを行うことができます: 'docker run --rm -v my-volume:/ data/ubuntu rm -rf data/dir1 data/dir2 data/file1 ..' – lvthillo