Diagnostic Commands
Complete guide for troubleshooting and diagnostics in NazDocker Lab.
🔍 System Diagnostics
Container Status
# Check container status
docker ps -a
# Check container health
docker ps --format "table \t\t"
# View container details
docker inspect student-lab-ubuntu
# Check container logs
docker-compose -f docker-compose.ubuntu.yml logs lab-environment-ubuntu
Resource Usage
# Check resource usage
docker stats student-lab-ubuntu
# Check disk usage
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu df -h
# Check memory usage
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu free -h
# Check CPU usage
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu top -bn1
🔧 Network Diagnostics
Network Connectivity
# Test internet connectivity
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ping google.com
# Check DNS resolution
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu nslookup google.com
# Check network interfaces
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ifconfig
# Check network connections
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu netstat -tulpn
Port and Service Checks
# Check SSH port
docker port student-lab-ubuntu
# Test SSH locally
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ssh localhost
# Check SSH service status
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu service ssh status
# Check listening ports
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ss -tulpn
🛠️ Service Diagnostics
SSH Service
# Check SSH process
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ps aux | grep sshd
# Check SSH configuration
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu cat /etc/ssh/sshd_config
# Test SSH connection
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ssh -o ConnectTimeout=5 localhost
# Check SSH logs
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu tail -f /var/log/auth.log
Playit.gg Tunnel
# Check tunnel process
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ps aux | grep playit
# Check tunnel logs
docker-compose -f docker-compose.ubuntu.yml logs lab-environment-ubuntu | grep -i "playit\|tunnel"
# Check tunnel environment
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu env | grep PLAYIT
👥 User Diagnostics
User Account Checks
# List all users
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu bash -c "
cat /etc/passwd | grep -E ':(/bin/bash|/bin/sh)$'
"
# Check user home directories
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ls -la /home/
# Check user permissions
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu bash -c "
for user in admin user1 user2 user3 user4 user5; do
echo "User: $user"
ls -la /home/$user/
echo ""
done
"
Authentication Tests
# Test password authentication
sshpass -p 'admin123' ssh -o ConnectTimeout=5 admin@localhost -p 2222
# Test SSH key authentication
ssh -i ~/.ssh/id_ed25519 -o ConnectTimeout=5 admin@localhost -p 2222
# Check SSH key permissions
ls -la ~/.ssh/
📊 Performance Diagnostics
System Performance
# Check system load
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu uptime
# Check process list
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ps aux
# Check memory usage
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu cat /proc/meminfo
# Check disk I/O
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu iostat
Container Performance
# Monitor container stats
docker stats --no-stream student-lab-ubuntu
# Check container resource limits
docker inspect student-lab-ubuntu | grep -A 10 "HostConfig"
# Check container mounts
docker inspect student-lab-ubuntu | grep -A 10 "Mounts"
🔍 Log Analysis
SSH Logs
# View recent SSH logs
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu tail -50 /var/log/auth.log
# Check failed login attempts
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu bash -c "
grep 'Failed password' /var/log/auth.log | tail -20
"
# Check successful logins
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu bash -c "
grep 'Accepted password' /var/log/auth.log | tail -20
"
System Logs
# View system logs
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu journalctl -f
# Check service status
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu systemctl status --all
# Check boot logs
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu dmesg | tail -20
🔧 Diagnostic Scripts
Comprehensive Diagnostic
#!/bin/bash
# comprehensive-diagnostic.sh
echo "=== Comprehensive Diagnostic ==="
echo ""
echo "1. System Information:"
docker version
docker-compose --version
echo ""
echo "2. Container Details:"
docker inspect student-lab-ubuntu | grep -E "(State|Health|Mounts|NetworkSettings)"
echo ""
echo "3. Environment Variables:"
docker-compose -f docker-compose.ubuntu.yml config | grep -E "(PLAYIT_SECRET_KEY|ADMIN_PASSWORD|USER_PASSWORD|ROOT_PASSWORD)"
echo ""
echo "4. User Accounts:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu bash -c "cat /etc/passwd | grep -E ':(/bin/bash|/bin/sh)$'"
echo ""
echo "5. Disk Usage:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu df -h
echo ""
echo "6. Memory Usage:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu free -h
echo ""
echo "7. Network Interfaces:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ifconfig
echo ""
echo "8. SSH Configuration:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu cat /etc/ssh/sshd_config | grep -E "(PasswordAuthentication|PermitRootLogin|PubkeyAuthentication)"
echo ""
Quick Health Check
#!/bin/bash
# quick-diagnostic.sh
echo "=== Quick Diagnostic ==="
echo ""
echo "1. Container Status:"
docker-compose -f docker-compose.ubuntu.yml ps
echo ""
echo "2. Health Status:"
docker ps --format "table \t\t"
echo ""
echo "3. Recent Logs:"
docker-compose -f docker-compose.ubuntu.yml logs --tail=10 lab-environment-ubuntu
echo ""
echo "4. Resource Usage:"
docker stats --no-stream student-lab-ubuntu
echo ""
echo "5. SSH Service:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu service ssh status
echo ""
echo "6. Network Connectivity:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ping -c 1 google.com
echo ""
Network Diagnostic
#!/bin/bash
# network-diagnostic.sh
echo "=== Network Diagnostic ==="
echo ""
echo "1. Network Interfaces:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ifconfig
echo ""
echo "2. Network Connections:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu netstat -tulpn
echo ""
echo "3. DNS Resolution:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu nslookup google.com
echo ""
echo "4. Internet Connectivity:"
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ping -c 3 google.com
echo ""
echo "5. Port Mapping:"
docker port student-lab-ubuntu
echo ""
🚨 Emergency Diagnostics
Emergency Access
# Access container when SSH is down
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu bash
# Check SSH service
service ssh status
# Restart SSH if needed
service ssh restart
Data Recovery
# Check data directory
ls -la data/
# Check container data
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu ls -la /home/
# Backup data if needed
docker cp student-lab-ubuntu:/home ./emergency-backup-$(date +%Y%m%d-%H%M%S)
📊 Performance Monitoring
Real-time Monitoring
# Monitor container stats
docker stats student-lab-ubuntu
# Monitor system resources
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu top
# Monitor network traffic
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu iftop
Log Monitoring
# Follow SSH logs
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu tail -f /var/log/auth.log
# Follow container logs
docker-compose -f docker-compose.ubuntu.yml logs -f lab-environment-ubuntu
# Follow system logs
docker-compose -f docker-compose.ubuntu.yml exec lab-environment-ubuntu journalctl -f
🔗 Related Topics
- Common Issues - Solutions to frequent problems
- Emergency Procedures - Emergency recovery procedures
- Health Monitoring - System health monitoring
- Container Management - Container operations
- Troubleshooting - Common issues