概要
dockerでのvolumeの作成方法に手こずったので、備忘録です。
よくあるvolume作成方法
docker-compose.yml
version: "3"
services:
db:
image: mysql
volumes:
- ./db/mysql/volumes:/var/lib/mysql
この記述のみではそのコンテナ自体にvolumeが作成され、データを保存
を行うことはできるがデータの永続化はできない。
理由は、コンテナが削除されると一緒にデータも削除されてしまうため。
データを永続化するには
docker-compose.yml
version: "3"
services:
mysql:
image: mysql
volumes:
- mysql-db:/var/lib/mysql
volumes:
mysql-db:
driver: local
これが正しい記述となる。
やっていること
- mysqlコンテナにデータを格納するvolumeを作成
- そのvolumeを
「データを永続化するためだけの役割」
であるvolumeコンテナとマウント
実際にvolumeを確認
まずdocker-compose.yml
の設定を反映させる&サーバー起動
$ docker-compose up --build
その後、volumeの一覧を表示してみると
$ docker volume ls
DRIVER VOLUME NAME
local b1d0c166382335a52c546e1ea2eaddf752d6f410c4c6664bdc59e9606f4bd25
local myapp_mysql-db
新たにvolumeが作成できていることを確認できるはずです。