Docker Manager, Docker container'larını, image'larını, network'lerini ve volume'larını yönetmek için geliştirilmiş kapsamlı bir web tabanlı yönetim uygulamasıdır.

- Docker API Entegrasyonu: Dockerode kullanarak tam Docker API desteği
- Container Yönetimi: Oluşturma, başlatma, durdurma, silme, listeleme
- Log Yönetimi: Container loglarını görüntüleme ve real-time takip
- Network Yönetimi: Network oluşturma, listeleme, silme
- Volume Yönetimi: Volume oluşturma, listeleme, silme
- Image Yönetimi: Image listeleme ve silme
- Sistem Monitörü: Sistem bilgileri ve istatistikleri
- RESTful API: Tüm işlemler için API endpoint'leri
- Modern Web Arayüzü: Responsive ve kullanıcı dostu tasarım
- Real-time Güncelleme: WebSocket ile anlık bilgi güncellemeleri
- İnteraktif Dashboard: Sistem durumu ve istatistikleri
- Log Viewer: Real-time log görüntüleme
- Modal Formlar: Kolay container, network ve volume oluşturma
- Responsive Tasarım: Mobil ve masaüstü uyumlu
- Rate Limiting: API isteklerini sınırlama
- CORS Desteği: Cross-origin istekleri
- Helmet: HTTP güvenlik başlıkları
- Winston Logging: Kapsamlı log sistemi
- Error Handling: Hata yönetimi ve kullanıcı bilgilendirme
docker-manager/
├── backend/
│ ├── routes/
│ │ ├── containers.js # Container API routes
│ │ ├── images.js # Image API routes
│ │ ├── networks.js # Network API routes
│ │ ├── volumes.js # Volume API routes
│ │ └── system.js # System API routes
│ ├── services/
│ │ └── dockerService.js # Docker operations service
│ ├── middleware/
│ └── server.js # Express server
├── frontend/
│ ├── css/
│ │ └── style.css # Styles
│ ├── js/
│ │ └── app.js # Frontend JavaScript
│ └── index.html # Ana HTML dosyası
├── logs/ # Log dosyaları
├── package.json
├── Dockerfile
├── docker-compose.yml
├── nginx.conf
└── README.md
- Node.js 18+
- Docker
- Docker Compose (opsiyonel)
# Projeyi klonla
git clone https://github.com/fastuptime/docker-manager.git
cd docker-manager
# Bağımlılıkları yükle
npm install
# Uygulamayı başlat
npm start
# Geliştirme modunda çalıştır
npm run dev# Docker image'ı oluştur
docker build -t docker-manager .
# Container'ı çalıştır
docker run -d \
--name docker-manager \
-p 3000:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
docker-manager
# Windows için:
# docker run -d --name docker-manager -p 3000:3000 -v //./pipe/docker_engine://./pipe/docker_engine docker-manager# Servisleri başlat
docker-compose up -d
# Logları görüntüle
docker-compose logs -f
# Servisleri durdur
docker-compose downNODE_ENV=production # Çalışma ortamı
PORT=3000 # Sunucu portu
DOCKER_SOCKET_PATH=/var/run/docker.sock # Docker socket path- Linux/Mac:
/var/run/docker.sock:/var/run/docker.sock - Windows:
//./pipe/docker_engine://./pipe/docker_engine
- Tarayıcınızda
http://localhost:3000adresine gidin - Dashboard'da sistem durumunu görüntüleyin
- Sidebar'dan istediğiniz bölüme geçin:
- Dashboard: Sistem özeti
- Container'lar: Container yönetimi
- Image'lar: Image yönetimi
- Network'ler: Network yönetimi
- Volume'lar: Volume yönetimi
- Loglar: Container logları
# Container'ları listele
GET /api/containers
# Container oluştur
POST /api/containers
{
"name": "test-container",
"Image": "nginx:latest",
"HostConfig": {
"PortBindings": {
"80/tcp": [{"HostPort": "8080"}]
}
}
}
# Container başlat
POST /api/containers/:id/start
# Container durdur
POST /api/containers/:id/stop
# Container sil
DELETE /api/containers/:id# Image'ları listele
GET /api/images
# Image sil
DELETE /api/images/:id# Network'leri listele
GET /api/networks
# Network oluştur
POST /api/networks
{
"Name": "test-network",
"Driver": "bridge"
}
# Network sil
DELETE /api/networks/:id# Volume'ları listele
GET /api/volumes
# Volume oluştur
POST /api/volumes
{
"Name": "test-volume",
"Driver": "local"
}
# Volume sil
DELETE /api/volumes/:name# Sistem bilgileri
GET /api/system/info
# Sistem istatistikleri
GET /api/system/stats- Container listesi görüntüleme (çalışan/durdurulmuş)
- Yeni container oluşturma (image, port, environment variables)
- Container başlatma/durdurma/yeniden başlatma
- Container silme
- Container durumu ve bilgileri
- Container logları görüntüleme
- Real-time log takibi
- Log temizleme
- WebSocket ile anlık log akışı
- Network listeleme
- Yeni network oluşturma
- Network silme
- Network detay bilgileri
- Volume listeleme
- Yeni volume oluşturma
- Volume silme
- Volume detay bilgileri
- Docker version bilgisi
- Container istatistikleri
- Sistem kaynak kullanımı
- Real-time sistem durumu
- Rate limiting ile API koruması
- CORS yapılandırması
- Helmet ile HTTP güvenlik başlıkları
- Input validation
- Error handling
- Non-root user kullanımı
- Multi-stage build
- Minimal base image
- Health check implementasyonu
- Gzip compression
- Static file caching
- Connection pooling
- Efficient Docker API usage
- Winston logging
- Health checks
- Error tracking
- Performance metrics
-
Docker socket bağlantı hatası
- Windows: Docker Desktop'ın çalıştığından emin olun
- Linux: Docker daemon'ın çalıştığından emin olun
- Permission hatası: Docker grup izinlerini kontrol edin
-
Port çakışması
- 3000 portunu kullanan başka uygulamalar
- PORT environment variable ile farklı port kullanın
-
Container oluşturma hatası
- Image'ın mevcut olduğundan emin olun
- Port mapping formatını kontrol edin
# Debug logları
DEBUG=* npm start
# Verbose Docker logs
docker-compose logs -f- v1.0.0: İlk sürüm
- Temel container yönetimi
- Web arayüzü
- API endpoints
- Image build desteği
- Multi-host Docker support
- Container statistics
- Backup/restore
- User authentication
- Role-based access control
- Fork'layın
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit'leyin (
git commit -m 'Add amazing feature') - Push'layın (
git push origin feature/amazing-feature) - Pull Request oluşturun
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
- GitHub: https://github.com/fastuptime/docker-manager
- Email: [Email Address]
- Dockerode - Docker API client
- Express.js - Web framework
- Socket.io - Real-time communication
- Winston - Logging library