docker-compose up --force-recreate でコンテナを再作成してから起動する

Wed, July 26, 2017 - 3 min read

docker-compose up でコンテナを再作成してから起動するには —force-recreate オプションを付けることで実現できます。

Docker

開発中に docker-compose build –no-cache でキャッシュを使わないでビルドしたら、念のため docker-compose up —force-recreate しておくと変更が反映されてないという問題が減るはずです。

docker-compose up のオプション

使い方: up [オプション] [サービス...]

オプション: -d デタッチド・モード: バックグラウンドでコンテナを実行し、新しいコンテナ名を表示 —abort-on-container-exit と同時に使えない —no-color 白黒で画面に表示 —no-deps リンクしたサービスを表示しない —force-recreate 設定やイメージに変更がなくても、コンテナを再作成する —no-recreate と同時に使えません —no-recreate コンテナが既に存在していれば、再作成しない —force-recreate と同時に使えない —no-build イメージが見つからなくても構築しない —build コンテナを開始前にイメージを構築する —abort-on-container-exit コンテナが1つでも停止したら全てのコンテナを停止 -d と同時に使えない -t, —timeout TIMEOUT アタッチしている、あるいは既に実行中のコンテナを 停止する時のタイムアウト秒数を指定 (デフォルト:10 ) —remove-orphans Compose ファイルで定義されていないサービス用のコンテナを削除

もしも Compose で処理時、強制的に全てのコンテナを停止・再作成するには —force-recreate フラグを使います。

対象のコンテナ数が多いと、コンテナの再作成・起動に時間がかかるので docker-compose up —force-recreate targetContainerName のように特定のコンテナだけ再作成するというアプローチが時間短縮になりそうです。

参考情報