DevOps
19 technical articles and tutorials in the DevOps category
Linux Crontab in Practice: Commands, Logs, and Debugging
Crontab is more than a syntax: the three commands you must know, /etc/cron.d vs user crontabs, a five-step debugging path for jobs that never ran, the PATH and timezone traps, and what to do when you need second-level scheduling.
Read moredocker run to docker-compose: The Complete Migration Guide (with Flag Map)
Migrate docker run commands to docker-compose.yml: five advantages of compose over raw run, a flag-by-flag mapping table (ports, volumes, env, restart, networks), the classic pitfalls (bare -e passthrough, anonymous volumes, --rm semantics), and an online converter that runs locally in your browser.
Read morePermission denied (publickey): 6 Reasons Git Push Fails Over SSH (and the Fix for Each)
git clone or push rejected with Permission denied (publickey) fatal: Could not read from remote repository? Covers missing keygen, key not loaded in the agent, public key not added to GitHub/GitLab, multi-account key routing with ~/.ssh/config, deploy key limits, and wrong remote URLs — with ssh -v diagnostics.
Read morenpm ERR! ERESOLVE: peer dependency conflicts — the complete fix guide
npm install fails with ERESOLVE peer dependency conflicts? Understand what peer dependencies are, why npm 7+ enforces them, and 4 resolution strategies (force, legacy-peer-deps, overrides, manual) with trade-offs.
Read moreerror:0308010C digital envelope routines::unsupported — Fixing Node 17+ Breakage in Older Projects
Node 17+ crashes webpack 4 builds with error:0308010C:digital envelope routines::unsupported because OpenSSL 3.0 removed MD4. Three fixes compared: --openssl-legacy-provider quick unblock, upgrading to webpack 5 as the real fix, and pinning Node 16 as a stopgap.
Read moreECONNREFUSED: Connection Refused — 5 Causes Explained (Including Docker)
Node, Java, or curl reporting connect ECONNREFUSED 127.0.0.1:3306? It means nothing is listening on that port. Covers service not running, wrong port, 127.0.0.1-only binding, Docker container networking, and firewall REJECT rules — with ss/lsof diagnostic commands.
Read moreDocker permission denied on docker.sock: the Right Fix (and Its Security Cost)
docker commands fail with permission denied while trying to connect to the Docker daemon socket? The cause: your user isn't in the docker group. One-step fix with usermod -aG, the newgrp trick to avoid re-login, why chmod 777 is a trap, and why docker group membership equals passwordless root — plus the rootless alternative.
Read moredocker pull access denied: 5 Reasons Image Pulls Get Rejected (and the Fix)
docker pull fails with pull access denied for xxx, repository does not exist or may require docker login? Covers misspelled image names, missing tags, private registry login, Docker Hub rate limits, and registry mirrors for mainland China networks — with a one-minute triage flow.
Read moreDocker port is already allocated: Finding and Freeing the Taken Port
docker run fails with port is already allocated or bind: address already in use? The host-side port you mapped is taken — by another container's docker-proxy or a host process. How to tell the two apart, the compose project-name collision scenario, and why 127.0.0.1 and a specific IP binding can coexist.
Read moreDocker no space left on device: the Complete Cleanup Ladder, Safe to Aggressive
Docker build or run failing with no space left on device? Dangling images, stopped containers, build cache, and unbounded container logs — see exactly who eats the disk with docker system df. The prune ladder from container prune to system prune -a, the --volumes danger zone, and the log-rotation config that stops it coming back.
Read moredocker manifest unknown: 4 Reasons the Tag Can't Be Found
docker pull reports manifest for xxx:tag not found or manifest unknown? Covers tag typos, the latest-tag trap, renamed official images, and architecture mismatches (arm64/amd64 manifests) — with docker manifest inspect and the Hub Tags API for verification.
Read moreExecutable File Not Found: 4 Reasons Docker Containers Exit Instantly (incl. exec format error)
Container fails with OCI runtime exec failed: executable file not found or standard_init_linux.go errors? Covers Windows CRLF breaking shebangs, ENTRYPOINT shell vs exec form, PATH and relative paths, and architecture mismatches — with docker inspect and --entrypoint debugging.
Read moreCannot connect to the Docker daemon — 5 Reasons and How to Diagnose Each
docker ps fails with Cannot connect to the Docker daemon at unix:///var/run/docker.sock? Covers the Linux service not running, Docker Desktop not started, WSL2 integration reset, daemon.json syntax errors killing the daemon, wrong docker context, and missing rootless DOCKER_HOST — with journalctl diagnostics.
Read moreContainer Name Is Already in Use: Resolving the Conflict Error
docker run fails with Conflict. The container name /xxx/ is already in use? An old container with the same name still exists — stopped containers keep their names too. Covers finding the squatter with docker ps -a, rm -f to free it, compose down for project leftovers, --rm for one-shot runs, and restart-policy resurrections.
Read moreCannot find module: 6 Reasons Node.js Can't Find Your Module (and How to Fix Each)
Node.js ERR_MODULE_NOT_FOUND or Cannot find module errors decoded: require vs import path rules, node_modules corruption, case sensitivity, ESM/CommonJS mixing, monorepo workspaces — with fix commands for each.
Read morePort Already in Use? The Complete EADDRINUSE Fix Guide (macOS/Linux/Windows)
Getting EADDRINUSE: address already in use or Port 3000 is already in use on startup? One set of commands to find and free the occupying process on every platform, plus prevention and the tricky cases (ControlCenter, TIME_WAIT, Docker).
Read morenpm ERR! network: How to Fix npm Install Timeouts with a Registry Mirror
Complete fix guide for npm install network failures (ETIMEDOUT, ECONNRESET, ERR_SOCKET_CONNECTION_TIMEOUT): switching to a fast registry mirror, cleaning caches, purging stale proxy configs, and the package-lock resolved-URL trap.
Read moreSubnetting / CIDR Explained: What Is 192.168.1.0/24 and How to Calculate
What does CIDR like 192.168.1.0/24 mean, how to get the subnet mask, how to compute usable hosts? Explains subnetting with intuitive examples, plus our CIDR / subnet calculator.
Read moreOnline Dockerfile Generator: Quickly Create Docker Container Configs
Learn how to use an online tool to quickly generate Dockerfiles. Understand Dockerfile basic instructions, multi-stage build optimization, and containerization best practices.
Read more