# Docker Migration Quick Reference ## 🚀 Quick Migration Process ### Source Environment (Export) ```bash # 1. Build images first (if not already built) docker-compose build # 2. Export all images ./export-images.sh # 3. Transfer files to target environment # Option A: SCP scp -r docker-images-export-*/ user@target-server:/path/to/destination/ # Option B: USB Drive cp -r docker-images-export-*/ /Volumes/USB_DRIVE/ # Option C: Compressed archive scp legal-doc-masker-images-*.tar.gz user@target-server:/path/to/destination/ ``` ### Target Environment (Import) ```bash # 1. Copy project files scp docker-compose.yml user@target-server:/path/to/destination/ scp DOCKER_COMPOSE_README.md user@target-server:/path/to/destination/ # 2. Import images ./import-images.sh # 3. Start services docker-compose up -d # 4. Verify docker-compose ps ``` ## 📋 Essential Files to Transfer ### Required Files - `docker-compose.yml` - Unified compose configuration - `DOCKER_COMPOSE_README.md` - Documentation - `backend/.env` - Backend environment variables - `frontend/.env` - Frontend environment variables - `mineru/.env` - Mineru environment variables (if exists) ### Optional Files (for data preservation) - `backend/storage/` - Backend storage directory - `mineru/storage/` - Mineru storage directory - `backend/legal_doc_masker.db` - Database file ## 🔧 Common Commands ### Export Commands ```bash # Manual export docker save legal-doc-masker-backend-api:latest -o backend-api.tar docker save legal-doc-masker-frontend:latest -o frontend.tar docker save legal-doc-masker-mineru-api:latest -o mineru-api.tar docker save redis:alpine -o redis.tar # Compress for transfer tar -czf legal-doc-masker-images.tar.gz *.tar ``` ### Import Commands ```bash # Manual import docker load -i backend-api.tar docker load -i frontend.tar docker load -i mineru-api.tar docker load -i redis.tar # Extract compressed archive tar -xzf legal-doc-masker-images.tar.gz ``` ### Service Management ```bash # Start all services docker-compose up -d # Stop all services docker-compose down # View logs docker-compose logs -f [service-name] # Check status docker-compose ps ``` ### Building Individual Services ```bash # Build specific service only docker-compose build backend-api docker-compose build frontend docker-compose build mineru-api # Build and restart specific service docker-compose up -d --build backend-api # Force rebuild (no cache) docker-compose build --no-cache backend-api # Using the build script ./build-service.sh backend-api --restart ./build-service.sh frontend --no-cache ./build-service.sh backend-api celery-worker ``` ## 🌐 Service URLs After successful migration: - **Frontend**: http://localhost:3000 - **Backend API**: http://localhost:8000 - **Mineru API**: http://localhost:8001 ## ⚠️ Troubleshooting ### Port Conflicts ```bash # Check what's using ports lsof -i :8000 lsof -i :8001 lsof -i :3000 # Modify docker-compose.yml if needed ports: - "8002:8000" # Change external port ``` ### Permission Issues ```bash # Fix script permissions chmod +x export-images.sh chmod +x import-images.sh chmod +x setup-unified-docker.sh # Fix directory permissions sudo chown -R $USER:$USER backend/storage mineru/storage ``` ### Disk Space Issues ```bash # Check available space df -h # Clean up Docker docker system prune -a ``` ## 📊 Expected File Sizes - `backend-api.tar`: ~200-500MB - `frontend.tar`: ~100-300MB - `mineru-api.tar`: ~1-3GB - `redis.tar`: ~30-50MB - `legal-doc-masker-images.tar.gz`: ~1-2GB (compressed) ## 🔒 Security Notes 1. Use encrypted transfer (SCP, SFTP) for sensitive environments 2. Verify image integrity after transfer 3. Update environment variables for target environment 4. Ensure proper network security on target environment ## 📞 Support If you encounter issues: 1. Check the full `DOCKER_MIGRATION_GUIDE.md` 2. Verify all required files are present 3. Check Docker logs: `docker-compose logs -f` 4. Ensure sufficient disk space and permissions