docker-compose stopとdownの違い
コンテナを止めるだけ
docker-compose startを実行すると、再度立ち上げることができる
docker-compose stop
Stops running containers without removing them. They can be started again with docker-compose start.
docker-compose down
コンテナ削除 + ネットワーク削除 + ボリューム削除(-vオプションをつけた場合)
再度コンテナを立ち上げたい時は、docker-compose upを実行し、コンテナ、ネットワーク、(ボリューム)を作成しなおす。
Stops containers and removes containers, networks, volumes, and images created by up.
docker-compose downのメリット
上記の情報を見た感じだと基本的にはdocker-compose stopでよさそうだなーという印象です。ではdocker-compose downのメリットは??
まず1つ目は、普段docker-compose downを一切しないと仮定すると、docker ps -aで現在存在するコンテナを一覧表示した際に、現在進行系で利用していない過去のコンテナが残ってしまっているかと思います。
そうなっているとゴチャゴチャして見にくいので、使わないコンテナは削除するという意味でもdocker-compose downは有用かと思います。
(追記: docker-compose psでこの問題は解決できました
)
2つ目、どちらかというとこちらの方が大きいです。
何かしらの事情でコンテナ内でゴニョゴニョしてる場合(コンテナに入ってapt-getなどでツールを追加したり等)、ローカルのコンテナと設計書(Dockerfile)の間で相違が生じるケースがあるんですね。
コンテナの最大のメリットの一つは、開発チームの環境を全く同じにする所にあるため、上記のようなケースだと本来のメリットが享受できなくなるんですね。
そういう意味でも普段からdocker-compose downでコンテナを一旦削除からの再作成で常に設計書とイコールのクリーンな状態に保つ事は一定のメリットがあると思いました。
参考