
起動時にデータベースにデータをロードするコンテナがあり、すべて正常に動作します。
ここで、このプロセスの最後に、 を使用してソース データ ファイルが格納されているディレクトリを削除しますrm -rf /mysrc
。
プロセスの一部として (Dockerfile 内)、すべてをロードするために使用する src ディレクトリに対して mysql:mysql 権限を付与しました。そうしないと、データのロード (ロードを実行するサードパーティ スクリプト経由) で問題が発生し、エラーが発生するためです。
src ディレクトリをクリアして呼び出すときに、rm -rf /mysrc
「Permission Denied」エラーが発生しますが、/mysrc の内容は削除されますが、ディレクトリは残ります。
試してみると、chown root:root /mysrc
「操作は許可されていません」というエラーが表示され、ディレクトリは当然そのまま残ります。
ディレクトリは残っているのにファイルが削除されているという事実から、削除するときには mysqld がフォルダに対するハンドルを持っているはずだと考えます。
bash 経由またはスクリプト経由でコンテナーから mysql サービスを停止 (およびフォルダー上のハンドルを解放) しようとすると、コンテナーが停止します。
このディレクトリ (およびその内容) を削除するにはどうすればよいですか? コンテナを強制終了せずにコンテナ内の mysql サービスを再起動するにはどうすればよいですか?