docker-composeで開発環境を作っているのだが、 環境作りなおしたいとき、ただdownしてupしなおせばよいと思っていた。
が、なにもマウントしないRDBは空になっていることを期待していたが、 データが残っているときと、残っていないときがあって、???となっていた。
docker-compose のヘルプをみても
$ docker-compose (略) Commands: build Build or rebuild services config Validate and view the Compose file create Create services down Stop and remove containers, networks, images, and volumes (略)
削除すると書いてあるのだが、、、もうちょっと調べる。
$ docker-compose down -h Stops containers and removes containers, networks, volumes, and images created by `up`. By default, the only things removed are: - Containers for services defined in the Compose file - Networks defined in the `networks` section of the Compose file - The default network, if one is used Networks and volumes defined as `external` are never removed. Usage: down [options] Options: --rmi type Remove images. Type must be one of: 'all': Remove all images used by any service. 'local': Remove only images that don't have a custom tag set by the `image` field. -v, --volumes Remove named volumes declared in the `volumes` section of the Compose file and anonymous volumes attached to containers. --remove-orphans Remove containers for services not defined in the Compose file -t, --timeout TIMEOUT Specify a shutdown timeout in seconds. (default: 10)
以下のようにしないとvolumeは削除されないらしい。へー。
docker-compose down --v
というかコンテナのライフサイクルとvolumeのライフサイクルは別なのね。いろいろ理解が足らんことを理解した。