データの永続化 docker volume 周り
Wordpress においては MySQL が扱かうデータがサービス、見た目に大きく影響を与える
当然のことだが、Wordpress は MySQL をデータベース管理システムとして使用している。これによって管理されるデータには、記事の情報やそれに伴う画像等のコンテンツ、さらにはプラグインの設定や、サイトのパスワードといった情報も含まれる。
そのため、MySQL, Wordpress(NGINX + PHP + Wordpress ) という二つのコンテナを作り、それぞれを例えば docker-compose で連携させる場合、「MySQL 側のデータが重要」になってくる。特に、プラグインの情報が含まれるということが大きい。プラグインによって Wordpress のサービスは大きく変わってくる。見た目すらも大きく変わる。
普通に立てた MySQL 用 Docker コンテナ内のデータベースは、container を停止すると、消える
しかし Docker Container を停止すると、データベースのデータは消える。これでは Wordpress の開発に問題がある。なぜなら、DB の内容も、Wordpress の開発に影響してくるからだ。
一つの方法としての volume を使った永続化
まず volume を作る。これはホスト上に実際に作られる。(Docker for Mac の場合、仮想システムにできるようなので、直接 cd 等でアクセスできるわけではない模様。)
できたかどうか調べる。
VOLUME NAME に対象の名前をもった Volume ができていれば OK。次にその volume の詳細を調べてみる。
できている。
Volume をマウントして run してみる
これで ubuntu にログインした後に ls すると、/test_volume
ができていることがわかる。
さらにここにファイルを作ってみる。
で
でもう一回 volume を乗っけて実行すると
/test_volume/test がある。
けど volume をマウントしないと
/test_volume/test がない。
変更がしっかり永続化できている。
Docker Compose の場合の一例
compose の場合は少し特殊。だが、volume で永続化しているのは同じ。
Last updated