docker-compose upとdocker-compose startの違いは何ですか?


124

実行するたび

docker-compose start 
docker-compose ps

「UP」状態のコンテナが表示されます。私が行った場合

docker-compose up -d

もっと詳細が表示されますが、同じ状態になります。両方のコマンドに違いはありますか?

回答:


166

docker-compose start
https://docs.docker.com/compose/reference/start/

サービスの既存のコンテナーを開始します。

docker-compose up
https://docs.docker.com/compose/reference/up/

サービスのコンテナーをビルド、(再)作成、開始、およびアタッチします。

それらが既に実行されていない限り、このコマンドはリンクされたサービスも開始します。

このdocker-compose upコマンドは、各コンテナーの出力を集約します(基本的にはを実行していますdocker-compose logs -f)。コマンドが終了すると、すべてのコンテナーが停止します。実行docker-compose up -dすると、バックグラウンドでコンテナが起動し、実行したままになります。

サービスの既存のコンテナーがあり、コンテナーの作成後にサービスの構成またはイメージが変更された場合、コンテナーdocker-compose upを停止して再作成 することで変更を取得します(マウントされたボリュームを保持)。Composeが変更を取得しないようにするには、--no-recreateフラグを使用します。

完全なCLIリファレンス:https :
//docs.docker.com/compose/reference/


3
docker -compose CLIリファレンスへの更新されたリンク:docs.docker.com/compose/reference * docker -compose up:docs.docker.com/compose/reference/up * docker -compose start:docs.docker.com/compose/reference / start
マイケル

18

dockerでよくある質問で、これは非常に明確に説明されています。

up、run、startの違いは何ですか?

通常は、必要ですdocker-compose up。でup定義されたすべてのサービスを開始または再起動するために使用しますdocker-compose.yml。デフォルトの「接続」モードでは、すべてのコンテナのすべてのログが表示されます。「切り離された」モード(-d)では、コンテナの起動後にComposeが終了しますが、コンテナは引き続きバックグラウンドで実行されます。

このdocker-compose runコマンドは、「1回限り」または「アドホック」のタスクを実行するためのものです。実行するサービス名が必要であり、実行中のサービスが依存するサービスのコンテナーのみを開始します。run テストの実行、またはデータボリュームコンテナーへのデータの削除や追加などの管理タスクの実行に使用します。runコマンドは次のように動作します docker run -ti、コンテナへのインタラクティブターミナルを開き、コンテナ内のプロセスの終了ステータスと一致する終了ステータスを返すというにします。

このdocker-compose startコマンドは、以前に作成されたが停止されたコンテナーを再起動する場合にのみ役立ちます。新しいコンテナを作成することはありません。


再起動コマンドはこれらのどのコマンドとどのように異なりますか-実行、開始、起動?
ナグ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.