julien-infra-hostinger-docker

majiayu000's avatarfrom majiayu000

Docker management for Hostinger VPS srv759970 - container operations, image optimization, WordPress Docker, troubleshooting. Use for any Docker operation, container issues, or image management.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 5, 2026

When & Why to Use This Skill

This Claude skill provides a comprehensive management toolkit for Docker environments on Hostinger VPS. It streamlines container orchestration, automates image optimization, and simplifies WordPress Docker deployments. By integrating status monitoring, lifecycle operations, and advanced troubleshooting runbooks, it ensures high availability and peak performance for cloud-hosted applications.

Use Cases

  • Monitoring container health and resource metrics (CPU/Memory) in real-time to prevent server overloads.
  • Executing seamless deployments and service updates using Docker Compose with automated build and recreation workflows.
  • Managing WordPress instances within Docker, including database operations, WP-CLI commands, and file permission fixes.
  • Optimizing server storage through automated cleanup of dangling images, old layers, and unused volumes.
  • Rapidly diagnosing and resolving infrastructure issues such as container crashes, network endpoint conflicts, and configuration errors.
namejulien-infra-hostinger-docker
descriptionDocker management for Hostinger VPS srv759970 - container operations, image optimization, WordPress Docker, troubleshooting. Use for any Docker operation, container issues, or image management.
licenseApache-2.0

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

  1. Order layers: deps before code
  2. Use multi-stage builds
  3. Combine RUN commands
  4. Add .dockerignore
  5. 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'