docker

docker-compose stop / down どちらを使えばよいか

dockerのコンテナを停止するときに使うdocker-compose stop と docker-compose down についてです。
どのような違いがあり、どちらを使えばよいのでしょうか。

stopとdownの違い

この違いは単純で、
stopはコンテナを停止するだけで削除しません。永続化していなくても残ります。
downはコンテナの削除も行います。

どちらを使えばよいのか

どちらか、をまず覚えるのであれば基本的にはまずdocker-compose downを使う運用の方が好ましいです。

stopは停止するだけなので、再開時にdocker-compose.ymlの変更などを適用しません。
そのため、ずっとstopだけで運用していると実は最新のdocker-compose.ymlの設定ではアプリケーションが動かない状態になっていたというケースが発生します。
また、docker-compose.ymlを変更したので数カ月ぶりにdownしたらデータベースが永続化できてなくてすべてのデータが吹っ飛んだなんてこともありえます。

理解した上で適宜stopも使い分ける、であれば問題はありませんが、
原則downを使う運用にしておくほうが普段からチェックが走る状態なのでいざというときに困りません。

プロダクトやチームが成熟してくるとdownすると起動に時間がかかるようになってきたり、
動作はCIでチェックできるなど環境が整ってくるのでstopを使うことが増えてきます。

まとめ

・まずはdownを使いながら環境やスキルを成熟させる
・ちゃんと理解して環境整えているのであれば適宜stopも使ってOK

-docker