「dockerコンテナ」から/tmpフォルダを削除するとどうなりますか?

「dockerコンテナ」から/tmpフォルダを削除するとどうなりますか?

フォルダを完全に削除すると/tmpどうなりますか?

副作用はありますか?それともオペレーティングシステムで再生成されますか?再起動中または何かを保存する必要がある場合/tmp)?

ドッカーに違いはありますか?それともLinuxやUnixと同じように動作しますか?

答え1

これは、UNIXのバージョンとそのUNIXで実行されている特定のソフトウェアによって大きく異なります。たとえば、Kerberosはチケットファイルをダウンロードできるため、その/tmpディレクトリを削除するとすべてのユーザーがログインに失敗する可能性があります(rootローカルパスワードを使用するか...)。sysdigあるいは、同様の追跡ソフトウェアを使用してもよい。

$ sudo sysdig "fd.name contains /tmp"
...

そして、しばらく実行して、どのソフトウェアがどのよう/tmpに使用されているかを調べてください。 (「カオス猿」のアプローチは、rm -rf /tmp何が失敗し、どのように失敗するのか、本番で良いアイデアかもしれないし、そうでないかもしれないことを確認することです...)これまでに収集されたものを見てみましょsysdigう。

5311 20:43:52.918062202 0 postgres (24503) > close fd=6(<u>/tmp/.s.PGSQL.5432)
202619 20:45:08.252631819 0 rpm (24540) < open fd=4(<f>/tmp) name=/tmp flags=1(O_RDONLY) mode=0
202620 20:45:08.252633087 0 rpm (24540) > read fd=4(<f>/tmp) size=8192
202621 20:45:08.252633848 0 rpm (24540) < read res=-21(EISDIR) data=
202622 20:45:08.252634580 0 rpm (24540) > close fd=4(<f>/tmp)
202623 20:45:08.252635375 0 rpm (24540) < close res=0
202627 20:45:08.252650259 0 rpm (24540) < open fd=4(<f>/var/tmp) name=/var/tmp flags=1(O_RDONLY) mode=0

このテストVMの特定の時点でインストールしたようですpostgres(データベースは機能しなくなりました。/tmp消えたため問題になる可能性がありますか?)。rpmディレクトリに奇妙なことをしていますが、tmp理由はわかりません。

オペレーティングシステムは通常、期待されるものを再生成しません。これが問題の場合は、構成管理ポリシーを設定してその/tmp権限を作成および変更できます(CFEngineなどのデフォルトエージェントを使用している間、Ansibleはこれを行うのが恐ろしいでしょう)。構成管理のために、これらのエラーを即座に検出して修正することができますが、構成管理ソフトウェアが欠落している場合でも正しく機能する必要があり/tmpます。 (ただし、誰かまたは何かが任意のOSディレクトリを破損する場合に修正できることには限界があります...)

答え2

"ls -l /tmp"を実行します。 / tmpにユーザーが作成していないファイルがある可能性があります。これは、多くのサービスとプログラムが/ tmpが存在すると予想し、一時ファイルを/ tmpに書き込むように構成されることが多いためです。 / tmpを完全に削除すると、これらのプロセスが削除され、そのプロセスが再生成される可能性が減ります。削除しないでください。

関連情報