After a long gap, I finally sat down and completed something I had been meaning to write for a while. It started with a simple question I couldn't ignore anymore: 👉 What actually happens after you run `docker ps`? I've used Docker for a long time, almost 8 years now, but at some point I realized I was relying on it without really understanding how it works under the hood. That didn't sit right. (I was just being bored) So I started digging. What began as curiosity turned into tracing real system calls using `strace`, following how the Docker CLI connects to `/run/docker.sock`, how `dockerd` accepts that connection, and how the request flows through `containerd` and `runc` before finally reaching the Linux kernel. Along the way, it also helped me connect a lot of dots around local IPC (Unix sockets), system design, and how these concepts translate directly into real-world systems and production setups. This wasn't just about Docker anymore. it gave me a much clearer mental model for building and debugging systems, especially when you’re trying to design something larger and more reliable. This isn't the easiest topic if you're new to Linux, networking, or container internals. But if you spend time with it, it changes how you think about containers and system design. Honestly, this stuff doesn't fit well into short posts, so I put everything together in a detailed write-up. I'll drop the link in the comments 👇 #Docker #Linux #DevOps
Understanding Docker Internals: A Deep Dive
More Relevant Posts
-
🔧 From Jenkins Failures to Production Hero — A DevOps Linux War Story Last week, a routine deployment turned into a firefight. Jenkins jobs started failing, Nginx returned 502s, and disk space was critically low. The culprit? A mix of full /var, zombie processes, and a memory leak. Here’s what saved the day — real Linux commands every DevOps engineer should have in their back pocket: 🚨 Disk Space Alert df -h → du -sh /* → docker system prune -a --volumes 🔥 High CPU / I/O Wait top → ps -eo pid,comm,%cpu → iostat -xz 1 🧟 Zombie Processes ps aux | awk '$8~/Z/' → kill -9 <PPID> 🔐 SSH / Permission Issues ssh -vvv → chmod 700 ~/.ssh → sudo grep pubkey /var/log/auth.log 📦 Systemd Failing After Reboot systemctl enable docker → journalctl -u docker -n 200 👉 One option: Save this post — it’s your Linux triage cheat sheet. 💬 CTA: What’s your most-used Linux debug command in production? Drop it below 👇 #DevOps #Linux #SRE #ProductionSupport #SysAdmin
To view or add a comment, sign in
-
My First Step into DevOps: Building a Containerized DNS Core The Goal: I recently moved my home DNS filtering (Pi-hole) onto a Raspberry Pi 3B. While the standard approach is to use a simple one-line installation script, I chose to deploy it using Docker Compose. I wanted to move away from "point-and-click" setups and actually learn how to manage infrastructure as code. --- The Learning Curve: Getting Pi-hole to run correctly in a container was a massive learning experience. It forced me to move past the surface level and solve real-world engineering problems. - Container Networking: This was my biggest hurdle. In the default Docker Bridge mode, Pi-hole couldn’t "see" individual device IPs. I had to pivot to Host Networking for transparency, which meant learning to manually resolve Port 53 conflicts with systemd-resolved using ss and lsof. - The "Ephemeral" Logic: I learned the hard way how Docker handles state. I spent hours troubleshooting why my .env changes weren't reflecting, only to discover that once a persistent volume is created, it takes precedence during recreation. It shifted my mindset from "editing files" to "managing a service lifecycle." - Linux Fundamentals: The project required more than just Docker. I had to master GPG repository signing, understand how shell expansion works in docker.sources, and use chmod a=r to harden my security—skills that are often skipped in basic tutorials. - Resource Management: Running on a Pi 3B meant being intentional with storage. I learned to use docker system prune and image auditing to keep "ghost" data from filling up my SD card. --- When it clicked: The real win wasn't getting the dashboard to turn green. It was the moment I finally untangled a subnet origin conflict that was dropping my DNS traffic. That struggle taught me more about traffic flow and Docker logic. I’ve documented every step of this journey from the initial ssh-keygen to the final healthcheck logic in my GitHub repo: https://lnkd.in/eC2diMju #DevOps #Docker #Pihole #HomeLab #LinuxAdmin #Networking #LearnInPublic
To view or add a comment, sign in
-
🐧 Save This Linux Command Cheatsheet — You'll Thank Yourself Later! Whether you're a developer, DevOps engineer, or just starting your Linux journey, knowing your way around the terminal is a superpower. 💻 Here's a quick breakdown of what's covered in this cheatsheet: 📁 Files & Navigation — Move, copy, rename, delete, and explore your file system like a pro. 🌐 Networking — From pinging hosts to downloading files and SSH connections. ⚙️ Processes — Monitor and manage running processes with ease. 🖥️ System Info — Know your system's CPU, memory, disk, and uptime at any time. 📦 Archive & Compress — Master tar commands for bundling and extracting files. 🔐 Permissions — Understand chmod and control who can read, write, or execute. 🔍 Other Commands — grep, locate, whereis, and man — the unsung heroes of Linux. The terminal isn't scary — it's just a language. The more commands you learn, the faster and more powerful your workflow becomes. 🔖 Bookmark this post and share it with someone learning Linux! #Linux #DevOps #Programming #SoftwareDevelopment #CloudComputing #Tech #OpenSource #Coding #LearningInPublic #Terminal
To view or add a comment, sign in
-
-
🐧 Save This Linux Command Cheatsheet — You'll Thank Yourself Later! Whether you're a developer, DevOps engineer, or just starting your Linux journey, knowing your way around the terminal is a superpower. 💻 Here's a quick breakdown of what's covered in this cheatsheet: 📁 Files & Navigation — Move, copy, rename, delete, and explore your file system like a pro. 🌐 Networking — From pinging hosts to downloading files and SSH connections. ⚙️ Processes — Monitor and manage running processes with ease. 🖥️ System Info — Know your system's CPU, memory, disk, and uptime at any time. 📦 Archive & Compress — Master tar commands for bundling and extracting files. 🔐 Permissions — Understand chmod and control who can read, write, or execute. 🔍 Other Commands — grep, locate, whereis, and man — the unsung heroes of Linux. The terminal isn't scary — it's just a language. The more commands you learn, the faster and more powerful your workflow becomes. 🔖 Bookmark this post and share it with someone learning Linux! #Linux #DevOps #Programming #SoftwareDevelopment #CloudComputing #Tech #OpenSource #Coding #LearningInPublic #Terminal
To view or add a comment, sign in
-
-
Realized today why every senior engineer I respect keeps telling me to “learn Linux properly.” Finally sat down and explored it. Not through some managed platform or containerized environment. Actually Linux. One thing became immediately clear: Linux treats you like an adult. No confirmation dialogs. No “Are you sure?” prompts. You tell it to delete something, it deletes it. You ask it to run a process, it runs it. Complete trust, complete control, complete responsibility. And that changes how you think about engineering. I’ve spent five years writing code in environments with guardrails. IDEs that autocorrect. Platforms that auto-scale. Systems that “just work.” Comfortable, but I never had to deeply understand what was happening. Linux forces understanding. Every command is explicit. Every configuration is visible. Every failure tells you exactly what went wrong. No abstractions hiding the truth. The engineers who truly understand production systems, who can debug the hardest problems, who stay calm during outage they all have this in common: they know what’s happening at the OS level. Today wasn’t about memorizing commands. It was about understanding that every cloud service, every deployment pipeline, every “serverless” function it all runs on Linux. And if you don’t understand that foundation, you’re building on sand. What made Linux finally click for you? #Linux #SoftwareEngineering #SystemsThinking #DevOps #InfrastructureEngineering
To view or add a comment, sign in
-
For Day 06 of the #90DaysOfDevOps challenge, I went back to the fundamentals of Linux: File I/O operations. In the world of DevOps, everything is a file. Whether you are debugging logs, updating Nginx configurations, or writing automation scripts, the ability to manipulate text quickly from the CLI is a superpower. 🛠️ What I Mastered Today: I practiced the art of file redirection and stream manipulation using basic but powerful commands: Redirection (> and >>): Learning the critical difference between overwriting a file and safely appending to it. The tee Command: A game-changer for redirection that allows you to write to a file and see the output in the terminal simultaneously. head & tail: Essential for inspecting massive log files without crashing your terminal session. 💡 The Command I’ll Use Every Day: tail -f <filename> There is no better way to watch a live application log and catch errors the moment they happen. 📂 Progress Log: Created: teecommand folder Pushed to GitHub: https://lnkd.in/gZTrv9rJ #90DaysOfDevOps #DevOpsKaJosh #TrainWithShubham #Linux #Automation #CloudComputing #LearningInPublic
To view or add a comment, sign in
-
Unpopular opinion: rolling release distros aren't "unstable" - they're the only honest way to run Linux in 2026. I know, I know - "use LTS for stability." "Rolling release will break eventually." "You'll spend all your time fixing updates." I believed that for years. But here's what actually happens on LTS: you're running software from 2 years ago, hitting bugs that were fixed 18 months ago, missing features that everyone else has, and eventually you still have to do a massive upgrade that breaks things anyway. I switched to Arch about a year ago, and you know how many times my system has broken from updates? Zero. You know how many times I've had to deal with version conflicts because my base system is ancient? Also zero. The difference isn't stability. It's that rolling release breaks things incrementally and fixably. LTS saves up all the breaking changes and hits you with them at once during the upgrade you've been dreading. What really gets me: we're developers. We update our dependencies constantly. We run the latest Node, the latest Python, the latest everything - because old versions have bugs and security issues. But somehow our entire operating system should be frozen in time? That makes sense? I get small updates daily on Arch. Each one takes 30 seconds. If something breaks, I know exactly what changed. On Ubuntu LTS, I got massive updates twice a year that could break anything, and good luck figuring out which of the 500 changed packages caused it. The irony? People run LTS "for stability" then spend hours troubleshooting why their Docker version is too old or their drivers don't support their hardware. Sometimes "stable" just means "consistently outdated." #Linux #ArchLinux #RollingRelease #UnpopularOpinion #SoftwareEngineering #DevOps #SystemAdministration
To view or add a comment, sign in
-
If you're new to DevOps, understanding Linux is essential as it serves as the foundation for everything that runs. Here are the 10 Linux commands that every DevOps engineer uses daily: 1. pwd — where am I? 2. ls -la — what's here? (including hidden files) 3. cd — move around 4. cat / less — read files without opening an editor 5. grep "error" /var/log/app.log — find what matters in logs 6. top / htop — what's consuming my CPU/memory? 7. df -h — how much disk space is available? 8. chmod / chown — resolve permission errors 9. ps aux | grep nginx — is that process running? 10. curl -I https://yourapp.com — test endpoints from the terminal Pro tip: Don't just memorize these commands; use them every day on a real server or a local VM. The muscle memory develops through practice, not just reading. Which Linux command do you use the most? Share it below, and I'll compile the community's top 10. #Linux #DevOps #SysAdmin #Beginners #CloudEngineering
To view or add a comment, sign in
-
-
🔧 When a Simple Install Turns Into a Kernel-Level Lesson Today I just wanted to install VirtualBox so I could spin up a Linux machine for practicing and working on some DevOps stuff. I thought it would take a few minutes… but it turned into a small troubleshooting journey. At first, VirtualBox wouldn’t start and kept throwing the rc=-1908 error. After digging a bit, I realized I was running kernel 6.17, and the required module (vboxdrv) wasn’t being built properly. Even reinstalling didn’t help because DKMS still failed to build the module on that kernel. The workaround was booting into a more stable kernel (6.14) so the modules could finally build. I thought that would solve everything, but there was one more blocker: Secure Boot. It was preventing the module from loading and kept returning a “Key was rejected” error. After disabling Secure Boot and loading the modules, VirtualBox finally started working. What I expected to be a simple installation ended up being a good reminder: sometimes issues come from different layers of the system, and the only way forward is to debug them step by step. #DevOps #Linux #Troubleshooting #VirtualBox #Kernel #DKMS #LearningJourney
To view or add a comment, sign in
-
gVisor gVisor provides a strong layer of isolation between running applications and the host operating system. It is an application kernel that implements a Linux-like interface. Unlike #Linux, it is written in a memory-safe language (Go) and runs in userspace. #gVisor includes an Open #Container Initiative (#OCI) runtime called runsc that makes it easy to work with existing container tooling. The runsc runtime integrates with #Docker and #Kubernetes, making it simple to run #sandboxed containers. https://lnkd.in/dvS8PBEa (by #Google)
To view or add a comment, sign in
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development
https://flarexes.com/how-docker-works-cli-to-kernel