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
でコンテナを一旦削除からの再作成で常に設計書とイコールのクリーンな状態に保つ事は一定のメリットがあると思いました。
参考