Data Volume Containerを利用する方法
データの永続化の為にデータを格納する専用のコンテナを作る以下の方法をあちこちで見かけますね。
例えばMariaDB用のデータコンテナなら
$ docker run --name mariadb_data -d -v /var/lib/mysql busybox true
といった作り方をされる方も多いかと思います。
あとはデータコンテナを利用したいコンテナ側で --volumes-from=mariadb_data
オプションを付けて利用しますよね。
実はこれ、
わざわざデータコンテナを作らなくても良い方法があるんです
Data Volume Containerを利用しない方法
$ docker run --name mariadb -d -v mariadb_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=secret mariadb
といった感じで -v ボリューム名:/var/lib/mysql
オプションを付けるだけでほぼ同じ事が実現出来ちゃうんです。
上記の方法をすると、ボリューム名
で指定した名前のボリュームが存在しない場合は勝手に作ってくれるんです。
既に存在する場合はそのボリュームを/var/lib/mysqlにマウントしてくれます
$ docker volume ls
DRIVER VOLUME NAME
local mariadb_data
$ docker volume inspect mariadb_data
[
{
"Name": "mariadb_data",
"Driver": "local",
"Mountpoint": "/mnt/sda1/var/lib/docker/volumes/mariadb_data/_data"
}
]
といった感じになります。
ホストOS側の上記Mountpointにデータが格納されてるのでバックアップ取るのも簡単ですね!
不必要になったのでボリュームを削除したい場合
$ docker volume rm ボリューム名
とすれば消せます。
快適なDockerライフを!