環境
- Docker version20.10.10
- MySQL8.0
- phpMyAdmin5.2
やり方
docker-compose.yml
version: "3.9"
services:
mysql:
image: mysql:8.0
ports:
- target: 3306
published: 3306
protocol: tcp
mode: host
volumes:
- type: volume
source: db-store
target: /var/lib/mysql
volume:
nocopy: true
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=true
- TZ=Asia/Tokyo
phpmyadmin:
image: phpmyadmin:5.2
ports:
- target: 80
published: 80
protocol: tcp
mode: host
volumes:
- type: volume
source: sessions
target: /sessions
volume:
nocopy: true
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_USER=root
links:
- mysql
volumes:
db-store:
sessions:
bash
docker-compose up -d
動作確認
phpMyAdminにアクセス

適当なデータベースを追加


コンテナを再構築
bash
docker-compose down
docker-compose up -d
phpMyAdminにアクセスして先ほど作成したデータベースが保持されていることを確認
volumeを削除するオプションを指定してコンテナを再構築
bash
docker-compose down --volumes
docker-compose up -d
phpMyAdminにアクセスしてデータが削除されていることを確認