[{"data":1,"prerenderedAt":78},["ShallowReactive",2],{"/2026/07/05-docker-from-scratch":3},{"id":4,"title":5,"body":6,"date":69,"description":66,"extension":70,"meta":71,"navigation":72,"path":73,"robots":74,"seo":75,"stem":76,"__hash__":77},"posts/2026/07/05 docker-from-scratch.md","05 Docker From Scratch",{"type":7,"value":8,"toc":65},"minimark",[9,18,21,25,27,39,41,44,46,49,51],[10,11,13],"post-title",{":date":12},"date",[14,15,17],"h1",{"id":16},"docker-from-scratch","Docker from Scratch",[19,20],"br",{},[22,23,24],"p",{},"Today, I'm wondering how did all those base Docker image created. And what happened on the most basic layer of a Docker image.",[19,26],{},[22,28,29,30,38],{},"I found out that there's a reserved image called scratch. So, the most basic docker image can be derived from it by adding ",[31,32,37],"code",{"className":33},[34,35,36],"bg-gray-200","p-2","rounded","FROM scratch"," layer.",[19,40],{},[22,42,43],{},"At the most basic form, it actually runs a Linux kernel, no matter what is the host environment is. Yes, even on Windows.",[19,45],{},[22,47,48],{},"From scratch image, then we can add layers to reach the state of base image that we usually use.",[19,50],{},[22,52,53,54],{},"Link: ",[55,56,59],"span",{"className":57},[58],"text-blue-600",[60,61,62],"a",{"href":62,"rel":63},"https://hub.docker.com/_/scratch",[64],"nofollow",{"title":66,"searchDepth":67,"depth":67,"links":68},"",2,[],"2026-07-05T00:00:00.000Z","md",{},true,"/2026/07/05-docker-from-scratch",null,{"title":5,"description":66},"2026/07/05 docker-from-scratch","fTHzkUoH8wnWiQGClj97uLakcD3VohhRUtqJaU8pDlg",1785167451284]