TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

“I just want to run a container”

117 pointsby chaghalibaghaliover 8 years ago

9 comments

dkarapetyanover 8 years ago
We do &quot;just run containers&quot; for our entire CI pipeline. It&#x27;s all lxc&#x2F;lxd and just a bunch of shell scripts to start&#x2F;stop them. Works surprisingly well. So if you are just using containers as a sandboxed work runner then you don&#x27;t need anything fancy. The issue is that I think people would like to pretend that containers are just like VMs and this is where things start to break down.<p>They&#x27;re not VMs in the sense that none of the tried and true methods for orchestrating VMs is available. You need new solutions for networking, new solutions for storage, new failover patterns, new tools for clustering and organizing them, new application patterns, etc. Basically all the stuff that would have been handled by the hypervisor and the software defined networking layer is now all of a sudden in your face and you need some way to deal with it.
评论 #12624337 未加载
jacques_chesterover 8 years ago
&gt; <i>As far as I can tell running containers without using Docker or Kubernetes or anything is totally possible today</i><p>It&#x27;s been possible since before either of these existed. There are several container and orchestration systems that predate both.<p>My own pet faves are Garden (née Warden) and Diego, but that&#x27;s probably because I work at the company (Pivotal) where they were born.
madmax96over 8 years ago
<p><pre><code> &gt; let&#x27;s say all my 50 containers share a bunch of files (shared libraries like libc, Ruby gems, a base operating system, etc.). It would be nice if I could load all those files into memory just once, instead of 3 times. </code></pre> Correct me if I&#x27;m wrong, but doesn&#x27;t this kind of situation seem like a poor use-case of containers? It seems to me that one of the main points of containerization is to encapsulate the runtime dependencies of a process. If you&#x27;re conflating that by making two containers depend on the same runtime objects then the point of containerization has been lost. You might as well go back to a virtual machine. That&#x27;s not to suggest that there are not circumstances where overlay networks and filesystems aren&#x27;t useful, just that you should not be using them to manage dependencies.<p>Under this architecture, what happens when I want to update my applications to use a new version of a shared library? I either am forced to update all of my applications at once or I must modify the architecture and remove that shared dependency. This breaks down the composition that containerization promises.<p>I think that this advice should be re-examined. I am by no means an expert, but this doesn&#x27;t seem smart to me...
评论 #12625655 未加载
duck2over 8 years ago
I don&#x27;t see why systemd is at the core of all those graphs. Why do we need that particular program to run containers? Or does systemd mean, in this context, &quot;any daemon-controlling process&quot;?
评论 #12623799 未加载
评论 #12624026 未加载
phantom_oracleover 8 years ago
Can anyone deeply involved in the Hosting&#x2F;Ops field, explain to me why LXC&#x2F;LXD is ignored over the other options?<p>I see the top comment (dkarapetyan) mentions it, but you never really read of blogposts discussing how they scaled their LXC containers, etc.
评论 #12624875 未加载
评论 #12626076 未加载
wyldfireover 8 years ago
&gt; If I&#x27;m running 50 containers I don&#x27;t want to have 50 copies of all my shared libraries in memory. That&#x27;s why we invented dynamic linking!<p>BTW there&#x27;s a cool feature called Kernel Samepage Merging [1] that was created for the sake of conserving memory consumed in virtualization or container use cases like this.<p>[1] <a href="https:&#x2F;&#x2F;www.kernel.org&#x2F;doc&#x2F;Documentation&#x2F;vm&#x2F;ksm.txt" rel="nofollow">https:&#x2F;&#x2F;www.kernel.org&#x2F;doc&#x2F;Documentation&#x2F;vm&#x2F;ksm.txt</a>
tadfisherover 8 years ago
nspawn + btrfs is my preferred solution to the &quot;50 containers&quot; problem. The incantation you want is:<p><pre><code> systemd-nspawn --template=&quot;&#x2F;path&#x2F;to&#x2F;subvolume&quot; &lt;other args&gt; </code></pre> This creates a copy-on-write snapshot of the subvolume you supply, which is instantaneous. The --ephemeral flag can be used instead if you want the guest to be able to modify the base filesystem but you do not want those changes to persist across container boots.<p>Can someone describe what advantages rkt gives you over plain nspawn containers?
评论 #12624184 未加载
AlexandrPover 8 years ago
Picture from article, especially right part (docker &gt; 1.11.0) is that true? [0]<p>I&#x27;m not software architect, but when I see this, it seems to me that something deeply wrong with implementation or with technology itself.<p>[0] <a href="http:&#x2F;&#x2F;jvns.ca&#x2F;images&#x2F;docker-rkt.png" rel="nofollow">http:&#x2F;&#x2F;jvns.ca&#x2F;images&#x2F;docker-rkt.png</a>
评论 #12624266 未加载
BrandoElFollitoover 8 years ago
Since one will be running systemd-nspawn, why not going natively? The installation is easy (with debootstrap for instance)