2016-12-14 3 views

答えて

1

--rmおよび--restartは、Dockerfileで定義することはできません。オプションは相互に排他的です。 docker runはどちらか一方のみを使用できます。

Docker Composeファイルでは、コンテナにrestartオプションを設定できます。コンテナの削除ではなく、コンテナに割り当てるものではなく、up --build,downrmなどの他の作成コマンドのライフサイクルイベントです。

+0

だから、ドッキングウィンドウ-compose.ymlで--rmを持つことが可能ではないでしょうか? –

2

Dockerfileは、画像を作成するための指示を指定するために使用されます。

イメージが構築されたら、docker runコマンドを使用してそのイメージからコンテナを開始できます。 --rm--restartdocker runのオプションです。つまり、これらのコマンドはコンテナに適用されます。 --restartフラグを使用すると、コンテナの再起動ポリシーを指定できます。 --rmフラグは、終了時にコンテナ上のファイルシステムを削除するために使用されます。

2つのフラグによって提供される機能がDockerfileに属していないことがわかります。そうでない場合は、Docker(特にイメージ対コンテナ)の詳細を読む必要があります。

ADDITION:

--rmは、ファイルシステムを削除し、コンテナをクリーンアップします。 restartはコンテナの再起動にのみ使用され、再起動の間に消えるファイルシステムは非常に不快です。また、ファイルシステムの削除後の再起動は、「再起動」よりも新鮮な起動に似ていることにも注意してください。だから基本的に彼らは相互に排他的です。それらを一緒に使用すると、エラーが発生します。あなたがどこでそれをするかは関係ありません。

+0

申し訳ありませんが、私はどのようにしますか? - ドッカーのcompose.ymlで?私は再起動コマンドがあることを知っていますが、--rmについてはどうですか? –

+0

@ J.Eng更新されたn =私の答え。 – YoungSpice

0

docker run

--rm Automatically remove the container when it exits 
--restart string Restart policy to apply when a container exits (default "no") 
Possible values are : no, on-failure[:max-retry], always, unless-stopped 

ユーザーのドッキングウィンドウの達人に例が

docker run \ 
--rm \ 
-v /root/.m2:/root/.m2 \ 
-v /my/java/proj:/usr/src/mymaven \ 
-w /usr/src/mymaven \ 
maven:3.3.3-jdk-8 mvn clean package 
関連する問題