[{"data":1,"prerenderedAt":471},["ShallowReactive",2],{"project-9925896":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":44,"post_text":45,"what":46,"said":76,"maker_in_thread":176,"shape":185,"grid":190,"attempts":434,"same_week":435,"maker_shows":18,"maker_hidden":464,"reader_version":465,"card":466},"9925896","Bocker","Docker implemented in 100 lines of bash","title","Show HN: Bocker – Docker implemented in 100 lines of bash","https:\u002F\u002Fgithub.com\u002Fp8952\u002Fbocker","github.com","p8952",1437513607,2015,662,87,12,2565,1,"legend","dev_tools","container runtime","cli",[24,25,26,27,28],"docker","bash","containers","btrfs","namespaces","mixed",0.27,{"positive":32,"neutral":32,"mixed":33,"critical":34},13,2,4,32,{"execution":37,"idea":39,"design":42,"pricing":43},{"positive":38,"critical":33},3,{"positive":40,"critical":41},5,0,{"positive":18,"critical":18},{"positive":18,"critical":41},[40,40,41,41,41,41,41,41,41,41,41,41,41,41,40,41,41,40,38,40,38,38,41,40,38,38,38,41,40,38,38,18,40,41,33,38,18,41,41,40],null,{"problem":47,"audience":45,"pricing":45,"motivation":55,"time_to_build":45,"stack":62,"openness":74,"stage":75,"team_size":75},{"value":48,"source":49,"evidence":50},"Shows how basic Linux container features are built from a few system calls","commenter",[51],{"id":52,"by":53,"text":54},"9926231","vezzy-fnord","Using btrfs subvolumes as the image format, that's a nice touch. On the same road as the hypothetical systemd packaging system (not that I'm very enthusiastic about that). The…",{"value":56,"source":57,"evidence":58},"Learning and demonstrating how Docker works at a basic level","inferred",[59],{"id":60,"by":11,"text":61},"9926509","Thank you. One of the things I found really interesting here is how much could be done with just basic userland tools, and how old some of those tools are. Docker was released in…",[63,68],{"value":25,"source":64,"evidence":65},"maker",[66],{"id":67},"post",{"value":27,"source":49,"evidence":69},[70],{"id":71,"by":72,"text":73},"9926948","tobbyb","Just playing with this in a VM with an attached btrfs volume, a complete revelation. 96 lines! And it's actually pretty functional. This takes keeping it simple to a whole new…","open_source","unknown",{"praise":77,"objections":95,"requests":118,"questions":138,"alternatives":146},[78,87],{"value":79,"source":49,"evidence":80},"Simple and educational demonstration of container basics",[81,82,83],{"id":52,"by":53,"text":54},{"id":71,"by":72,"text":73},{"id":84,"by":85,"text":86},"9928454","agumonkey","When the abstractions are right, things fall out almost for free. Kudos for attempting this, made me smile from ear to ear.",{"value":88,"source":49,"evidence":89},"Good use of btrfs subvolumes as image format",[90,91],{"id":52,"by":53,"text":54},{"id":92,"by":93,"text":94},"9926215","WD-42","Nice work. Great to see the advanced features of BTRFS put to use.",[96,107,111],{"value":97,"source":49,"evidence":98},"Does not implement Docker's packaging format, which is most of its value",[99,103],{"id":100,"by":101,"text":102},"9927370","pekk","Wow, Docker in 100 lines! It runs as root? Oh. It is written in bash? Oh. It needs a ton of manual setup? Oh. It doesn't actually implement the package format which is most of…",{"id":104,"by":105,"text":106},"9926549","hosh","Yes. The basic technology has been there for a while. And the Docker source code has some eyebrow-raising parts to it. However, I've stated this in other threads: Docker isn't…",{"value":108,"source":49,"evidence":109},"Runs as root and needs manual setup",[110],{"id":100,"by":101,"text":102},{"value":112,"source":49,"evidence":113},"Hardcoded DNS resolv.conf setup is poor practice",[114],{"id":115,"by":116,"text":117},"9927653","SFjulie1","I thought puppet\u002Fchef were the pit of the devops ridicule. Then I not only saw this, but also positive reactions to a readable code in which you have : ``` echo 'nameserver…",[119,123,131],{"value":120,"source":49,"evidence":121},"Support for user namespaces and unprivileged containers",[122],{"id":71,"by":72,"text":73},{"value":124,"source":49,"evidence":125},"Overlayfs as alternative to btrfs",[126,127],{"id":71,"by":72,"text":73},{"id":128,"by":129,"text":130},"9926280","sandGorgon","not sure if you ever saw this - https:\u002F\u002Fwww.phoronix.com\u002Fscan.php?page=news_item&px=CoreOS-Btrfs-To-EXT4-OverlayFS it might be interesting to see a version of your script using…",{"value":132,"source":49,"evidence":133},"GPG-signed push and pull of images",[134],{"id":135,"by":136,"text":137},"9928147","arianvanp","Add support for GPG-signed `btrfs pull` and `btrfs push` and I'm totally sold! I've been working on something similar to this but on top of systemd-nspawn, which already does…",[139],{"value":140,"source":49,"evidence":141},"How the command in the .cmd file gets executed",[142],{"id":143,"by":144,"text":145},"9927365","spydum","I'm missing something, what actually \"executes\" the command here echo \"$2\" > \"$btrfs_path\u002F$uuid\u002F$uuid.cmd\" Is something watching for .cmd? Is this some behavior of util-linux…",[147,154,162,169],{"value":148,"source":49,"evidence":149},"LXC",[150,151],{"id":71,"by":72,"text":73},{"id":152,"by":72,"text":153},"9929722","Not really, Nspawn is extremely promising and is developing fast. Systemd 220 adds support for user namespaces so you can run nspawn containers as non root users. But containers…",{"value":155,"source":49,"evidence":156},"systemd-nspawn",[157,161],{"id":158,"by":159,"text":160},"9928220","XorNot","Systemd-nspawn is way easier to use than LXC imo in that it replicates the simplicity of chroot with the power of cgroups. The security story is unfinished though.",{"id":152,"by":72,"text":153},{"value":163,"source":49,"evidence":164},"dockerlite",[165],{"id":166,"by":167,"text":168},"9926499","asdfaoeu","There's also https:\u002F\u002Fgithub.com\u002Fdocker\u002Fdockerlite . But not sure how current it is.",{"value":170,"source":49,"evidence":171},"Guix",[172],{"id":173,"by":174,"text":175},"9927199","davexunit","Debian and Fedora do packaging better than Docker, relatively speaking, but they still have major issues that have lead to \"solutions\" like Docker, Chef\u002FOmnibus, etc. They…",{"comments":40,"answered":18,"key":177},[178,179,182],{"id":60,"text":61},{"id":180,"text":181},"9926581","I agree 100%. While the tech in Docker is great, it alone can't be easily monetized. The real value comes from things like DockerHub, and getting people to buy into the whole…",{"id":183,"text":184},"9926534","Looks good! I'd marked 'docker pull' as out of scope because I thought it would be fairly hard to interface with their API from bash, looks like I was wrong.",{"commenters":186,"max_depth":187,"maker_replies":40,"first_comment_mins":188,"lifespan_hours":189},62,10,49,66,[191,193,197,199,203,205,207,208,210,212,214,217,219,221,224,227,231,234,236,238,241,242,245,248,251,253,254,257,259,260,263,265,268,271,272,274,277,280,284,287,290,293,296,298,300,303,305,308,310,312,315,317,320,325,328,329,332,334,338,342,345,348,351,355,360,364,367,369,373,377,381,384,388,391,396,399,401,404,407,410,412,415,417,421,423,426,429],[71,41,40,192,72,41],"project\u002Fpositive\u002Fexecution",[194,41,41,195,196,41],"9933964","commenter\u002Fneutral\u002Fnone","cyansmoker",[52,18,40,198,53,41],"project\u002Fpositive\u002Fidea",[200,18,40,201,202,41],"9926494","project\u002Fpositive\u002Fdesign","zobzu",[60,18,41,204,11,18],"maker\u002Fneutral\u002Fnone",[104,18,41,206,105,41],"other\u002Fneutral\u002Fnone",[180,18,41,195,11,18],[209,18,41,206,53,41],"9926628",[211,18,41,206,105,41],"9927127",[213,18,41,206,53,41],"9927160",[215,18,41,206,216,41],"9927468","nitrogen",[218,18,41,195,53,41],"9927554",[220,18,41,206,105,41],"9927109",[222,18,41,223,174,41],"9927164","other\u002Fcritical\u002Fnone",[225,18,41,206,226,41],"9927237","ecnahc515",[228,18,41,229,230,41],"9928074","commenter\u002Fcritical\u002Fnone","hueving",[232,18,41,195,233,41],"9928216","vidarh",[235,18,41,229,230,41],"9942358",[237,18,41,223,174,41],"9927129",[239,18,41,206,240,41],"9927144","catern",[173,18,41,206,174,41],[243,18,41,195,244,41],"9928131","technomancy",[246,18,41,223,247,41],"9928369","merb",[249,18,41,195,250,41],"9927294","pravka",[252,18,41,206,72,41],"9927349",[158,18,41,206,159,41],[255,18,41,195,256,41],"9928602","Spakman",[258,18,41,206,159,41],"9929856",[152,18,41,206,72,41],[261,18,41,206,262,41],"9928129","maccam94",[84,18,40,264,85,41],"maker\u002Fpositive\u002Fnone",[266,18,41,195,267,41],"9927319","chjj",[269,33,41,206,270,41],"9926314","tlrobinson",[183,33,41,192,11,18],[273,33,41,195,270,41],"9930515",[275,33,41,206,276,41],"9928777","CSDude",[278,38,40,198,279,41],"9927557","anh79",[281,34,38,282,283,41],"9926669","project\u002Fneutral\u002Fidea","eatitraw",[285,34,41,206,286,41],"9927042","josegonzalez",[288,34,41,195,289,41],"9927461","yodasan",[291,34,38,292,286,41],"9927592","project\u002Fneutral\u002Fnone",[294,40,41,206,295,41],"9927052","tzm",[92,297,40,192,93,41],6,[299,297,41,204,11,18],"9926485",[301,297,38,204,302,41],"9928834","hndl",[166,304,41,206,167,41],7,[128,306,38,307,129,41],8,"project\u002Fneutral\u002Fexecution",[309,306,41,204,11,18],"9926470",[311,306,41,206,129,41],"9926612",[313,306,41,206,314,41],"9927678","kangsterizer",[135,316,38,282,136,41],9,[318,187,40,319,5,41],"9926432","project\u002Fpositive\u002Fnone",[321,322,18,323,324,41],"9927565",11,"project\u002Fcritical\u002Fnone","joeevans1000",[326,16,40,198,327,41],"9928946","jenscow",[143,32,38,307,144,41],[330,32,38,307,331,41],"9927567","inopinatus",[333,32,41,195,144,41],"9927582",[335,336,38,282,337,41],"9927560",14,"e12e",[339,340,41,206,341,41],"9929411",15,"kzisme",[343,340,41,206,344,41],"9929501","MoOmer",[346,347,40,192,196,41],"9933967",16,[349,350,40,198,85,41],"9928336",17,[352,353,40,319,354,41],"9928170",18,"amrit_b",[356,357,38,358,359,41],"9926840",19,"project\u002Fmixed\u002Fidea","logicrime",[361,357,41,362,363,41],"9926991","commenter\u002Fneutral\u002Fidea","welly",[365,357,41,195,366,41],"9927076","antsar",[368,357,38,307,202,41],"9927421",[370,357,18,371,372,41],"9934854","project\u002Fcritical\u002Fdesign","collyw",[374,375,38,282,376,41],"9928490",20,"sklogic",[378,379,40,198,380,41],"9927850",21,"BonoboBoner",[382,379,38,282,383,41],"9928116","simi_",[385,379,41,386,387,41],"9928118","other\u002Fneutral\u002Fidea","tritium",[389,379,41,386,390,41],"9929000","mpdehaan2",[392,393,38,394,395,41],"9926995",22,"project\u002Fmixed\u002Fexecution","vacri",[115,397,18,398,116,41],23,"project\u002Fcritical\u002Fexecution",[400,397,38,307,202,41],"9927670",[402,397,38,307,403,41],"9927686","druiid",[405,397,41,195,406,41],"9927845","Gigablah",[408,397,41,206,409,41],"9929760","dsmithatx",[100,411,18,398,101,41],24,[413,411,41,195,414,41],"9927652","alwaysagopher",[416,411,41,386,101,41],"9927722",[418,411,41,419,420,41],"9927910","other\u002Fcritical\u002Fidea","Spivak",[422,411,41,362,233,41],"9928240",[424,411,41,362,425,41],"9930424","juliangregorian",[427,411,41,386,428,41],"9928903","7952",[430,431,40,432,433,41],"9927521",25,"project\u002Fpositive\u002Fpricing","npx",[],[436,441,446,450,455,460],{"id":437,"name":438,"points":439,"category":440},"9911942","FAQT",184,"productivity",{"id":442,"name":443,"points":444,"category":445},"9923775","PledgeSociety",119,"web_saas",{"id":447,"name":448,"points":449,"category":440},"9895767","Hnwatch",102,{"id":451,"name":452,"points":453,"category":454},"9913798","ZomboDB",88,"data",{"id":456,"name":457,"points":458,"category":459},"9898310","FriendsTonight",54,"consumer_social",{"id":461,"name":462,"points":458,"category":463},"9923716","InstaDocker","infrastructure",false,"v2",{"id":467,"name":5,"line":6,"ai":464,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":468,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":469,"url":9,"mix":470,"praise":79,"objection":97,"sub":21},9925896,[24,25,26,27,28],"5500000000000050053533053330533150231005",[32,32,33,34],1794036533606]