Docker volumes provide persistent storage for your workspace, databases, and other data. This guide covers volume management in the development environment.
Manage volumes with the dev volume command:
dev volume [VOLUME_NAME] [HOST_PATH]By default, the workspace is stored in a Docker volume. To use a local directory instead:
cd ~/development
dev down --remove-orphans
dev volume rm workspace
mkdir workspace
dev volume workspace workspace
dev upNow ~/development/workspace contains your projects and is directly accessible.
Make MySQL data persistent in your development directory:
cd ~/development
dev down --remove-orphans
dev volume rm mysql
mkdir mysql
dev volume mysql mysql
dev setupWarning: This destroys existing databases. Export data first if needed.
For MySQL 8 persistence:
cd ~/development
dev down --remove-orphans
dev volume rm mysql8
mkdir mysql8
dev volume mysql8 mysql8
dev setupUsing local directories instead of Docker volumes:
- Easier backups: Standard file system backups work
- Direct access: Edit files with any tool
- Version control: Can add to git if desired (workspace not recommended)
- Visibility: See exactly what's stored
Using Docker volumes:
- Performance: Better I/O performance, especially on macOS
- Automatic management: Docker handles cleanup
- Isolation: No conflicts with host filesystem
List all volumes:
docker volume ls | grep dockerdevInspect a volume:
docker volume inspect dockerdev-workspace-volumeRemove a specific volume:
dev down
dev volume rm volumenameWarning: This permanently deletes data. Backup first.
Remove all unused volumes:
docker volume pruneVolumes inherit the UID/GID from the container processes, which match your user. If you encounter permission issues:
Check current permissions:
ls -la workspace/Fix permissions:
sudo chown -R $USER:$USER workspace/If using local workspace:
tar -czf workspace-backup.tar.gz workspace/If using Docker volume:
docker run --rm -v dockerdev-workspace-volume:/data -v $(pwd):/backup ubuntu tar czf /backup/workspace-backup.tar.gz /dataExport databases:
dev mysqldump database > database-backup.sqlOr backup the entire MySQL directory if using local volumes:
tar -czf mysql-backup.tar.gz mysql/tar -xzf workspace-backup.tar.gzdev mysql database < database-backup.sqlIf a volume is missing, recreate it:
dev volume workspace workspaceCheck volume sizes:
docker system df -vClean up unused volumes:
docker volume prune