1. ホーム
  2. docker

[解決済み] rm」フラグは何をしているのですか?

2022-03-06 15:32:10

質問

Dockerを初めて使うのですが、まだメンタルモデルがありません。全くの初心者です。

私が見ているすべてのサンプルには --rm のようなフラグを立てて実行します。

docker run -it --rm ...
docker container run -it --rm ...

質問です。

なぜこれらのコマンドには --rm のフラグを立ててください。せっかく良いものが入ったコンテナをセットアップしたりダウンロードしたりしたのに、なぜそれを削除するのだろうと私は思います。私は、再び使用するためにそれを維持したいのです。

だから、Dockerに対する考え方が間違っているのは分かっているんです。

どうすればいい?

コンテナは、それを実行するために使用するイメージのインスタンスに過ぎません。 コンテナ化されたアプリを作るときの状態は、例えば新鮮でクリーンなubuntuコンテナを取ってきて、その中に入れたいアプリや設定をダウンロードして、それを実行させるということではありません。

コンテナはアプリケーションのインスタンスとして扱うべきですが、アプリケーションはイメージに埋め込まれています。 正しい使い方は、カスタムイメージを作成して、すべてのファイル、設定、環境変数などをイメージに埋め込むことです。Dockerfileとその方法についてもっと読む こちら

アプリケーションを使用するには、適切なポート設定やその他の動的変数を使用してイメージを実行するだけです。 docker run <your-image>

コンテナの実行は --rm フラグを使用すると、例えばコンテナ内でアプリケーションをコンパイルしたり、動作テストをしたりといった、短時間しか使用しないコンテナの場合に有効です。