Blog

SSH, Linux, and production operations — page 25

Practical runbooks for servers, containers, databases, cloud hosting, incident response, and safe AI-assisted operations.

DNS propagation is usually caching: measure the actual TTL

The search intent behind this problem is diagnosing inconsistent answers after a record change.

The Tryssh team · July 21, 2026 →

DNS SERVFAIL vs NXDOMAIN: stop treating them as the same

When separating resolver failure from an authoritative negative answer, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →

Docker bind mount permission denied on Linux

The search intent behind this problem is mapping container identity to host ownership and security policy.

The Tryssh team · July 21, 2026 →

Docker build cache is stale—or your context is wrong

The search intent behind this problem is understanding why a rebuild ignores changed files.

The Tryssh team · July 21, 2026 →

Docker Compose depends_on does not mean the database is ready

The search intent behind this problem is preventing startup races between containers.

The Tryssh team · July 21, 2026 →

Docker Compose production deployment with a real rollback

The search intent behind this problem is pulling immutable images and verifying dependency health.

The Tryssh team · July 21, 2026 →

Docker Compose environment variables: precedence without surprises

The search intent behind this problem is identifying which value reached the container.

The Tryssh team · July 21, 2026 →

Docker Compose in production: where the simple story ends

Compose can be production-worthy on one host when backups, health checks, resource limits, secrets, and rollback are explicit.

The Tryssh team · July 21, 2026 →

Docker container keeps exiting: inspect PID 1 and the exit code

The search intent behind this problem is finding why the container's main process ends.

The Tryssh team · July 21, 2026 →

Docker container stuck restarting: read the real failure

Disable guesswork: capture exit code, logs, mounts, environment, and health-check state before replacing the container.

The Tryssh team · July 21, 2026 →

Docker container time is wrong: timezone or clock?

The search intent behind this problem is separating host clock drift from display timezone.

The Tryssh team · July 21, 2026 →

Docker container is unhealthy but still running: what next?

When interpreting health-check failures separately from process state, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →

Docker is eating the disk: inspect before you prune

Prune stopped containers and dangling images deliberately; volumes and database layers require separate ownership checks.

The Tryssh team · July 21, 2026 →

Docker DNS not resolving between containers

When checking network membership, service names, and embedded DNS, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →

Docker graceful shutdown: signals, stop timeout, and PID 1

The search intent behind this problem is preventing dropped requests during container replacement.

The Tryssh team · July 21, 2026 →

Docker health check fails because curl is not in the image

The search intent behind this problem is designing minimal images with reliable probes.

The Tryssh team · July 21, 2026 →

Docker exec format error: image architecture mismatch

The search intent behind this problem is detecting amd64 and arm64 image incompatibility.

The Tryssh team · July 21, 2026 →

Docker JSON logs consuming disk space

When controlling container log growth without deleting active files, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →

Docker live-restore: what survives a daemon restart

When planning daemon maintenance without confusing container availability, speed comes from ordering the investigation—not from typing more commands.

The Tryssh team · July 21, 2026 →

Docker connection refused between containers

The search intent behind this problem is fixing localhost assumptions and wrong internal ports.

The Tryssh team · July 21, 2026 →

Docker overlay2 is filling the disk: find the owner safely

The search intent behind this problem is attributing daemon storage before cleanup.

The Tryssh team · July 21, 2026 →

Docker published port not accessible from outside

The search intent behind this problem is tracing bind address, port publishing, firewall, and application listener.

The Tryssh team · July 21, 2026 →

Docker restart policy creates an invisible crash loop

The search intent behind this problem is making repeated failures observable before changing policy.

The Tryssh team · July 21, 2026 →

Rootless Docker: security boundary and operational tradeoffs

The search intent behind this problem is deciding whether rootless mode fits a production host.

The Tryssh team · July 21, 2026 →