実行するたび
docker-compose start
docker-compose ps
「UP」状態のコンテナが表示されます。私が行った場合
docker-compose up -d
もっと詳細が表示されますが、同じ状態になります。両方のコマンドに違いはありますか?
実行するたび
docker-compose start
docker-compose ps
「UP」状態のコンテナが表示されます。私が行った場合
docker-compose up -d
もっと詳細が表示されますが、同じ状態になります。両方のコマンドに違いはありますか?
回答:
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/
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
コマンドは、以前に作成されたが停止されたコンテナーを再起動する場合にのみ役立ちます。新しいコンテナを作成することはありません。