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