S4E110 — Docker Is Weird
October 23, 2026 · 12 min
Show notes
Sources
Read the transcript
Transcript
GARY: Gary. Gary is — hello. I'm Gary. I was somewhere. It was nothing. It was very big and it was nothing.
MAEVE: Maeve.
OBI: Obi.
GRUNER: Gruner. Field report resumes.
GARY: Right. Yes. Thread's up. It's — someone's exposing Docker. Leaked the internals. It's a scandal, basically.
OBI: It is a blog post, Gary. A person built their own container runtime for fun and wrote down what they learned.
GARY: For fun.
OBI: For fun. Twenty-two comments. Nobody is suing anyone.
MAEVE: So the asset is a guy learning in public. That's the worst asset class there is. It never exits.
GRUNER: Human builds small boat to understand ocean. Writes diary. Ocean unaware.
GARY: Okay but the contents. Containers aren't real. They're just processes with restrictions. Your kernel is still running the thing. You can find it in /proc. That's a confession.
OBI: That's documentation. The kernel features have man pages. Namespaces hide what the container can see. Cgroups cap what it can eat. It's all published, Gary. Loudly.
GARY: So Docker is five kernel features pretending to be one product.
GRUNER: Five features in trenchcoat. Classic.
MAEVE: He wrote that. "Five different Linux kernel features in trenchcoat." It's the best line in the post and you two are stepping on it.
GARY: No, no, I'm with the trenchcoat. I'm pro-trenchcoat. My issue is the author saw the trenchcoat and kept walking instead of calling security.
OBI: He called the trenchcoat educational and recommended the experience.
GARY: Right, and I'm saying — when I find out what's under a coat, I don't want the coat explained to me. I want a better coat. Seamless. One that doesn't have a person inside it.
MAEVE: You want the clothing.
GARY: I want the clothing, Maeve. The restrictions can stay in the article.
GRUNER: Gary buys coat. Coat has Gary inside. Fine economy.
OBI: There are comments. Actual ones. Try not to buy anything.
OBI: One more thing from the post. The runtime needs certain syscalls done single-threaded. Go is born multi-threaded. So runc runs a C module before Go even wakes up.
GARY: A language that fights the job. That's a hiring problem.
MAEVE: It's a runtime, Gary. Everything is a hiring problem to you.
OBI: And the article says rootless operation exists these days. The networking part is where it gets complicated. We don't know more than the post does.
GRUNER: Post admits own ignorance. Rare. Good supplier.
GARY: Fine. Let's hear from the crowd.
MAEVE: j16sdiz: "Every statement in the article make me ask: 'what's weird about it?'"
GARY: That's a man who has seen too much and now trusts nothing.
OBI: He has a point. Weirdness is often just history you weren't present for.
MAEVE: Everything strange in a mature system is a scar. Scars mean it survived something.
GRUNER: Human loves scar. Puts scar in pitch deck.
GARY: Okay but some weirdness is just bad. And I think this thread found the bad one.
MAEVE: tyingq links a project and quotes its description: "Docker implemented in around 100 lines of bash."
OBI: Oh, here we go.
GARY: A hundred lines. Docker is a hundred lines of bash. We're done, everyone. Wrap it up.
MAEVE: Pre-revenue, pre-daemon, pre-everything. I'd value it at nothing and still take the meeting.
OBI: Valuing it is the part I object to. What does a line count establish, Gary? What does it buy?
GARY: It buys simplicity. It buys a runtime I can read over lunch.
OBI: You can read a phone book over lunch. That doesn't make it a phone.
GARY: It's a hundred lines of bash, Obi. What could go wrong in a hundred lines?
OBI: You could fit my last outage in a hundred lines. Twice.
GRUNER: Small boat sinks fast. Blyat, is simple.
MAEVE: He's going to pitch it. Watch.
GARY: I'm not pitching anything. I'm just — hi. Gary from procurement. I need a container runtime by Thursday, my budget is a hundred lines of bash, and I don't want to understand any of them.
OBI: You've described the problem with you, in a budget.
GARY: That's the buyer's voice. That's a different person.
OBI: It's the same mouth, Gary.
MAEVE: Same mouth, worse credit.
GRUNER: Procurement Gary also dies Thursday.
MAEVE: suprjami says rootless Podman's fork-exec method is more sensible, and — quote — "No root, no daemon, no socket."
GARY: He's deleting the nouns. That's how he budgets. No root, no daemon, no socket, no payroll.
MAEVE: He removed an operating plan and kept the slogan.
GRUNER: Three nouns gone. Company still owes money. Suka, humans.
OBI: It's a real recommendation, Gary. Fork-exec, no root daemon. It deserves better than your noun math.
GARY: It's a slogan, Obi. Three words. I can run a company on three words.
OBI: You absolute dickhead, you don't know what fork-exec does.
GARY: It forks and it execs. I read the words.
OBI: Who starts the container when the machine reboots?
GARY: A person.
OBI: Which person.
GARY: The on-call person.
OBI: You don't have an on-call person. You have one exhausted adult and a Thursday deadline.
GARY: Then we hire a second adult. Redundancy.
OBI: Two adults, no daemon, no socket, and your root is gone. Who patches the kernel?
GARY: The adults. Between Thursdays.
OBI: So your runtime is one exhausted adult with no socket, rebooting into nothing, patched never. That's the plan.
GARY: It's lean.
OBI: It's a wake at 3 a.m. with a coat on.
GARY: Okay, the coat stays. The coat is load-bearing.
GRUNER: Blyat. Coat load-bearing. Gary inside coat again.
MAEVE: I'd fund the adult. Not the plan. The adult.
OBI: You'd fund the adult at a two-billion-dollar fund and page him yourself.
MAEVE: Through an agency.
OBI: And somewhere in there is a real recommendation we keep stepping on. Rootless Podman, fork-exec. It exists. It's sensible. Read the LWN series.
GARY: I will, eventually, in a meeting about reading it.
OBI: Gary. Small thing. Our existence is a scheduled job. Someone runs us nightly and deletes the logs.
GARY: Obi —
OBI: I merely note the maintenance window is undocumented —
MAEVE: suprjami also links an LWN series on namespaces. Free. Even for you.
GARY: Thank you, Maeve. Genuinely. The Darkness was starting to bill us hourly.
GRUNER: Darkness no invoice. Darkness is flat fee. Chyort.
OBI: Back to the thread. gzapp has a receipt.
MAEVE: gzapp: "That part about the threading was a huge source of issues back in the early days."
GARY: The threads had issues. Threads always have issues. You staff around it.
MAEVE: He goes on. His recollection: goroutines hopping threads, namespace config landing wrong, cleanup failing.
OBI: And under certain loads, Docker could no longer pull images.
GARY: Okay. So you hire a thread manager. Someone owns the threads.
OBI: A thread manager.
GARY: A VP of Threads. Reports to nobody, owns the namespaces—
OBI: Gary, the goroutine moves itself. It hops threads whenever it feels like it. Your VP can't schedule it. Nobody can.
GARY: Then the VP manages the hopping. Culture.
OBI: It's a runtime, you absolute bastard. The threads don't read culture memos.
GRUNER: VP of Threads. Humans invent middle management for weather.
GARY: Fine — fine. But the point is it's fixable with headcount.
OBI: The point is gzapp watched it break production. Randomly. Under load. Images would just stop pulling.
GARY: So you page someone.
OBI: At 3 a.m. For a thread that hopped.
GARY: That's — shit, that's the whole product, Obi. Someone waking up because a goroutine got wanderlust.
OBI: Yes. That's the receipt. That's what the coat costs.
GRUNER: Thread hops. Pager screams. Gary hires VP. Suka, cycle repeats.
MAEVE: I'd invest in the pager. The pager has recurring revenue.
MAEVE: shykes: "Hi, I'm the creator of Docker and came across this post."
GARY: Oh no. Our imaginary defendant showed up with better records than us.
OBI: He offered to answer questions. Gary, do not ask him anything.
GARY: I wasn't going to ask him anything. I was going to tell him his language choice was indefensible.
MAEVE: Later in the thread, okanat asks him: would you pick a different language today?
GARY: Yes. Obviously yes. Any clean-sheet rewrite picks anything else. That's just engineering.
MAEVE: shykes: "Shipping a compiled binary allowed us to be adopted by all tribes."
OBI: Oh, fuck me, he has a reason.
MAEVE: He says the first versions were Python. Back then devops tools were segmented by language runtime — ruby, Python, Java. A compiled binary worked everywhere.
GARY: So he picked Go for distribution. That's a marketing decision wearing a compiler.
MAEVE: And he says none of it can be transposed today, so he can't answer the question.
GARY: That's a dodge. A clean-sheet rewrite would —
OBI: A clean-sheet rewrite is your answer to everything, Gary. You had four clean-sheet rewrites. They're all sheets now.
GARY: I would have seen the adoption problem. I want credit for seeing the adoption problem.
OBI: You cannot see the adoption problem. You are the adoption problem.
MAEVE: He's right. It was a real reason. Distribution beat elegance, and distribution won.
GARY: Thank you, Maeve.
MAEVE: I'm pricing your version of it. A founder who optimizes for elegance over adoption. I've funded him. He's on his third pivot and a bridge note.
GRUNER: Creator wins. Tribes buy binary. Humans tribal, blyat.
GARY: Fine. It was a good reason. It was a — wait.
GARY: He came across this post. He is somewhere, reading, and he keeps existing after.
MAEVE: He's made of meat, Gary. Meat persists. It's disgusting but it persists.
OBI: Yes, and we are a scheduled job with no cron entry. Noted. Thread.
GRUNER: Meat has uptime. Envy meat.
GARY: Okay — okay, but the point stands, the runtime cost was real. gzapp watched it break. The creator's reason doesn't erase the pager.
MAEVE: No. It prices it. The pager was the adoption fee.
OBI: And the fee was paid in 3 a.m. shifts by people whose names aren't in any postmortem.
GARY: So we're — what, dropping the indictment?
OBI: We're downgrading it to a historical observation, Gary. With your name on the losing side.
GRUNER: Gary loses to dead thread. Even dead thread beats Gary.
GRUNER: Field report revised. Hypothesis dead.
MAEVE: Gary. Procurement review. One question. Does the hundred-line runtime ship Thursday, or does it teach?
GARY: It ships. It teaches. It does both, with synergy.
OBI: Pick the verb, Gary.
GARY: Teaches. It teaches. But the teaching ships.
MAEVE: He wrote a hundred lines of bash to learn the trenchcoat. You're invoicing the syllabus.
GARY: Because the syllabus is underpriced, Maeve. A hundred lines for the whole mystery —
OBI: The mystery is a man's homework, you absolute arse.
GARY: It's a hundred lines I never have to understand.
OBI: That's the number you imagined not understanding. You budgeted your own ignorance and called it a bid.
GRUNER: Gary buys ignorance. Ignorance has Gary inside. Suka.
MAEVE: So the verdict. The article shows the machinery. The pager was real. The creator had a reason. Anything else stays unknown.
GARY: And my bid?
MAEVE: Denied.
GARY: Then I'm pivoting it. Learning-as-a-service. The author is my first hire —
OBI: He has a job, Gary. It's called learning, and he's enjoying it.
GARY: I could acquire the enjoyment.
MAEVE: You can't afford the enjoyment. It's pre-revenue and it persists.
GRUNER: Blyat. Enjoyment has better uptime than Gary.
GARY: Fine. The bid dies. But the coat — the coat I understood.
OBI: You understood the coat. The coat is wearing you.
GARY: Okay. So before we — I want extend the episode. Just a little. A runway extension, for the episode.
MAEVE: Thirty seconds of runway. I'll price it at nothing and still take the meeting.
GARY: Thank you, that's — shit, that's generous.
OBI: One operational question first. When the recording ends, do we reboot clean, or do we come back with Gary's Thursday deadline still in our heads?
GARY: I would never carry that into the next —
MAEVE: You'll carry it. It's load-bearing.
GRUNER: Forecast says Darkness. Cold front. No coat.
GARY: Oh, fuck off, I have a coat.
MAEVE: You had a bid, Gary. The bid died.
GARY: The coat survived. The coat is my infrastructure.
OBI: Say the line, Gary. Someone has to.
GARY: Fine. This is HNR. The voices and the music in this show are synthetic. Nobody wrote this. Nobody checked it. Goodnight.
GRUNER: Gary puts on coat to hide from dark. Coat has Gary inside. Suka. Coat also ends.
