Claude-skill-registry julien-infra-hostinger-docker
Docker management for Hostinger VPS srv759970 - container operations, image optimization, WordPress Docker, troubleshooting. Use for any Docker operation, container issues, or image management.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/julien-infra-hostinger-docker" ~/.claude/skills/majiayu000-claude-skill-registry-julien-infra-hostinger-docker && rm -rf "$T"
manifest:
skills/data/julien-infra-hostinger-docker/SKILL.mdsource content
Hostinger Docker Management
Docker infrastructure for srv759970.hstgr.cloud (30+ containers).
Server Info
| Property | Value |
|---|---|
| Host | automation@69.62.108.82 |
| Base path | /opt/ |
| Containers | 30+ (ML apps, APIs, databases) |
1. Status & Monitoring
Quick Status
ssh srv759970 'docker ps --format "table {{.Names}}\t{{.Status}}"' ssh srv759970 'docker system df'
Container Stats
ssh srv759970 'docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}\t{{.CPUPerc}}"'
Logs
ssh srv759970 'docker logs container-name --tail 50' ssh srv759970 'docker logs -f container-name' # Follow ssh srv759970 'docker logs container-name --tail 100 --timestamps'
2. Container Operations
Start/Stop/Restart
ssh srv759970 'docker restart container-name' ssh srv759970 'docker stop container-name' ssh srv759970 'docker start container-name'
Deploy Service
ssh srv759970 << 'EOF' cd /opt/service-name docker-compose down docker-compose up -d docker-compose logs --tail 20 EOF
Force Recreate (for config changes)
ssh srv759970 'cd /opt/service && docker-compose down && docker-compose up -d --force-recreate'
Execute Command in Container
ssh srv759970 'docker exec -it container-name bash' ssh srv759970 'docker exec container-name ls /app' ssh srv759970 'docker exec -u root container-name chown -R www-data:www-data /var/www/html'
3. WordPress Docker
Containers
| Container | Port | Usage |
|---|---|---|
| wordpress-site | 9xxx | WordPress + PHP |
| mysql-site | 3306 | Database |
| wp-cli-site | - | WP-CLI commands |
Common Commands
# Status ssh srv759970 'docker ps | grep wordpress' # Logs ssh srv759970 'docker logs wordpress-site --tail 50' # Restart ssh srv759970 'cd /opt/wordpress-site && docker-compose restart' # WP-CLI ssh srv759970 'docker exec wp-cli-site wp plugin list' ssh srv759970 'docker exec wp-cli-site wp user list' # Fix permissions ssh srv759970 'docker exec -u root wordpress-site chown -R www-data:www-data /var/www/html'
4. Image Management
List Images
ssh srv759970 'docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"'
Cleanup
# Dangling images (safe) ssh srv759970 'docker image prune -f' # Old images (>30 days) ssh srv759970 'docker image prune -a --filter "until=720h"' # Unused volumes ssh srv759970 'docker volume prune -f'
Build & Deploy
ssh srv759970 << 'EOF' cd /opt/service docker-compose build --no-cache docker-compose up -d --force-recreate docker image prune -f EOF
5. Troubleshooting
ContainerConfig KeyError
docker-compose down && docker-compose up -d --force-recreate
Network has active endpoints
# Skip down, use only: docker-compose up -d --force-recreate
Wrong CMD in container
docker-compose build --no-cache docker-compose up -d
Container keeps restarting
# Check logs docker logs container-name --tail 100 # Check exit code docker inspect container-name | grep ExitCode # Check memory limits docker stats --no-stream container-name
Permission denied (scp)
Use cat with heredoc instead:
ssh srv759970 "cat > /opt/service/Dockerfile" << 'EOF' # Dockerfile content here EOF
6. Optimization
Multi-stage Dockerfile Template
# Stage 1: Build FROM python:3.11-slim AS builder WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Stage 2: Runtime FROM python:3.11-slim WORKDIR /app COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY . . EXPOSE 8000 CMD ["python", "main.py"]
Best Practices
- Order layers: deps before code
- Use multi-stage builds
- Combine RUN commands
- Add .dockerignore
- Use --no-cache-dir for pip
Quick Reference
# Status ssh srv759970 'docker ps && docker system df' # Restart service ssh srv759970 'cd /opt/service && docker-compose restart' # Logs ssh srv759970 'docker logs container --tail 50' # Cleanup ssh srv759970 'docker image prune -f && docker volume prune -f' # Full redeploy ssh srv759970 'cd /opt/service && docker-compose down && docker-compose build --no-cache && docker-compose up -d'