[WordPress]Dockerのデータをローカルに保存して永続化する。

Dockerはコンテナに仮想環境を用意できるとても便利なプラットフォームです。

仮想環境は案件毎や、環境テスト毎に用意したりしますが、全て起動しているとメモリが足らなくなります。そのため、都度、必要な時に起動する方が多いと思います。

docker-compose downすると、データもコンテナ内にあるため、削除されます。
今回は、ローカルにデータを保存しておいて、データを永続化できるようにします。

本記事のディレクトリ構成は下記です。

.
├── README.md
├── docker-compose.yml
├── project
└── data
目次

Dockerコンテナに保存する

Dockerコンテナに保存します。
これをするとコンテナを削除しない限り、データは残り続けます。

docker-compose downをするとコンテナデータが削除されてしまいます。

version: '3.3'
 
services:
   wordpress:
     image: wordpress:latest
     container_name: wp
     depends_on:
       - db
     ports:
       - "9901:80"
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
     volumes:
       - ./project:/var/www/html
 
   db:
     image: mysql:5.7
     container_name: wp-mysql
     ports:
      - "4307:3306"
     volumes:
      - db_data:/var/lib/mysql
     environment:
       MYSQL_ROOT_PASSWORD: root
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
       
volumes:
    db_data:

ローカルにMySQLのデータを保存する

ローカルディレクトリにマウントすることで、ローカルにMySQLのデータを保持します。

これにより、docker-compose downしてコンテナが削除されても、データは残り続けます。
( もちろん、ローカルのデータを削除すると、データは消える。 )

version: '3.3'
 
services:
   wordpress:
     image: wordpress:latest
     container_name: wp
     depends_on:
       - db
     ports:
       - "9901:80"
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
     volumes:
       - ./project:/var/www/html
 
   db:
     image: mysql:5.7
     container_name: wp-mysql
     ports:
      - "4307:3306"
     volumes:
      - ./data/db:/var/lib/mysql
     environment:
       MYSQL_ROOT_PASSWORD: root
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
       
volumes:
    db_data:

Summary

保守対応でときどき起動するものはデータをローカル保持していた方が便利です。

よかったらシェアしてね!
目次