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.

Docker Misconceptions

278 pointsby mattjaynesalmost 11 years ago

16 comments

waffle_ssalmost 11 years ago
I was ready to come in swinging in defending Docker, but I found myself agreeing with most of the points after spending a lot of time with Docker over the last month (ported my Rails application&#x27;s provisioning from Ansible to it).<p>I would add to the list that it is currently hard to even find decent images of popular services that you would trust deploying to production (e.g. Postgres). I see with the launch of Docker Hub that they have some flagged as &quot;official&quot; now, but for example the Postgres one is a black box (no Dockerfile source available - not a &quot;trusted build&quot;) so I can&#x27;t trust it.[1] I&#x27;ve had to spend time porting my Ansible playbooks over to Dockerfiles due to this.<p>I think part of the problem is that composition of images is strict &quot;subclass&quot;-type inheritance, so they don&#x27;t compose easily. So it&#x27;s hard to maintain a &quot;vanilla&quot; image rather than a monolithic one that has everything you need to run your particular service - so people just keep their images to themselves. For example, if I want a Ruby image that has the latest nginx and git installed, I can&#x27;t just blend three images together. I have to pick a base image, and then manually add the rest myself via Dockerfile.<p>Also, although Vagrant 1.6 added Docker syntax, you really have to understand how Docker works in order to use it. If you&#x27;re learning Docker I&#x27;d stick with the vanilla `docker` syntax first in building your images, maybe using something like fig[2] to start with.<p>At the end of the day it&#x27;s another abstraction to manage. It does bring great benefits in my opinion, but the learning curve and time investment aren&#x27;t cheap, so if you already have a suite of provisioning scripts it may not be worth it to make the leap yet.<p>[1]: <a href="https://registry.hub.docker.com/_/postgres/" rel="nofollow">https:&#x2F;&#x2F;registry.hub.docker.com&#x2F;_&#x2F;postgres&#x2F;</a><p>[2]: <a href="http://orchardup.github.io/fig/" rel="nofollow">http:&#x2F;&#x2F;orchardup.github.io&#x2F;fig&#x2F;</a>
评论 #7871473 未加载
评论 #7871918 未加载
评论 #7871527 未加载
评论 #7871141 未加载
评论 #7872068 未加载
评论 #7871161 未加载
评论 #7871942 未加载
TallGuyShortalmost 11 years ago
There are 2 other misconceptions I would really like to be less prevalent:<p>1) Linux containers are not an entirely new concept. If you didn&#x27;t know about BSD jails or Solaris zones, you were missing out. If you still don&#x27;t know the differences, I highly recommend you broaden your horizons. Even if you use Linux anyway, just knowing about what&#x27;s out there will help you be smarter.<p>2) Docker is not a drop-in replacement for every current VM use case. It&#x27;s just not. To HN&#x27;s credit, I really haven&#x27;t seen people here who seem to think that, but it&#x27;s on my list nonetheless.
评论 #7873111 未加载
thebyrdalmost 11 years ago
I&#x27;m so glad someone finally said this publically. Everyone always writes posts about how magical docker is, but the reality is that Docker more of a PR engine then a usable production virtualization solution.
评论 #7870447 未加载
评论 #7872564 未加载
评论 #7870504 未加载
wmfalmost 11 years ago
I think you&#x27;re going to need serious ops fu for &quot;orchestrating deploys &amp; roll backs with zero downtime&quot; whether you use containers or not. It seems like people with complex environments are flocking to Docker despite its supposed complexity, but maybe that&#x27;s the echo chamber talking.
评论 #7870485 未加载
评论 #7870105 未加载
评论 #7870174 未加载
评论 #7871262 未加载
hesdeadjimalmost 11 years ago
I&#x27;d be curious to see how CoreOS might help simplify some of the issues you mention. I&#x27;m starting to dig deep into both and the learning curve is definitely a bit high.
评论 #7870148 未加载
评论 #7871259 未加载
mattjaynesalmost 11 years ago
Original comment and posting: <a href="https://news.ycombinator.com/item?id=7869831" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=7869831</a>
nickstinematesalmost 11 years ago
Interesting article! There are some misconceptions I disagree with, but I believe I agree with the spirit.<p>What Docker does is allows those who are best qualified to make the decisions mentioned (the ops guys!) to have a clear separation of concerns from application developers.<p>It doesn&#x27;t magically solve this hard problems in and of itself.
评论 #7870592 未加载
jafakualmost 11 years ago
Dammit, you are a few months late. I learnt all the things you posted the hard way, and I agree on everything.
simonleboalmost 11 years ago
Great article. My understanding of Docker is quite new, so take my remarks with a grain of salt.<p>One thing I would emphasise in the first paragraph is that you need at least other provisioning&#x2F;configuration tools to set up the servers where the docker containers will be deployed to. I know it would obvious to most, but you would still need to start&#x2F;stop these machines with correct docker install, firewalls rules, and probably more. The VM layer has been flushed out, but still exists and needs attention.<p>After spending more than a week looking into Docker, my one frustration with Docker is that I have not found a way to correctly develop with it. Most of the docs I see are about deploying established apps, but I would love to see tutorials about how to develop, and start from scratch with it. Does Docker stand in your way when developing or does it make it easier? Maybe a solution is to create docker wrappers for our favourite framework that would abstract Docker. Anyways, I&#x27;d love to see more on this.
评论 #7871364 未加载
zobzualmost 11 years ago
Im always wondering how people pinning versions manage software updates (security or not).<p>If you grow to a few hundred (or thousand or hundred of thousand) systems, it seems pretty hard to test and install combinations, and even if its a single combination with regular updates, you still need a very well oiled and consistent automated testing.
评论 #7871431 未加载
评论 #7870764 未加载
dschiptsovalmost 11 years ago
<i>a huge leap forward for advanced systems administration.</i> - this is the one great misconception.<p>How a user-level virtualization technology back from mainframe&#x27;s era, reincarnated as FreeBSD jails years before solves the problem of, say, optimizing a &quot;slowed down under heavy load&quot; RDBMS server, via re-partirioning, profiling, reindexing, optimizing client&#x27;s code, which, in my opinion has something to do with &quot;advanced administration&quot;.<p>But ok, nowadays we have new meaningless memes &quot;orchestration&quot;, &quot;provisioning&quot;, &quot;containerization&quot;.<p>What punks cannot grasp is that it absolutely doesn&#x27;t matter how quickly and by which tool you will install some set of deb or rpm packages into some virtualized environment and run it. The real administration has nothing to do with this. It is all about adaptation to reality, data-folow analysis and fine tuning.
XorNotalmost 11 years ago
Docker is one of those things I keep installing and uninstalling. I simply can never quite make it work for me as a use-case.<p>My current commitment is to try looking at raw LXC again, specifically because it&#x27;s VM oriented (and also because the unprivileged containers look more like what I&#x27;d want to target).
VLMalmost 11 years ago
The only thing I&#x27;d add to the &quot;You don&#x27;t need to Dockerize everything&quot; section is be careful of dependencies and what the electric power companies call black start capability.<p>However tempting it might be, don&#x27;t virtualize all your deep infrastructure like your LDAP and DHCP servers or DNS or whatever as you&#x27;ll inevitably find yourself after a power failure unable to light up your virtualization system containing your kerberos servers because every single KDC is down or whatever. Its happened...<p>Most virtualization seems to push for the customer facing &quot;app side&quot; not infrastructure anyway. But its something to keep in mind.
gazarsgoalmost 11 years ago
Only thing I took issue with was &quot;Instead, explicitly define your servers in your configurations for as long as you can.&quot;<p>Maybe you can get away with this for a small scale deployment, but &quot;as long as you can&quot; sends a bit too mixed of a message. You should only defer a service discovery implementation until you get to the point where you have more than one read path in your stack.<p>IMO, as soon as you go from load balancer -&gt; app -&gt; cache -&gt; database to having a services layer you should start thinking service discovery.<p>The simplest bandaid is to leverage DNS as much as possible until you get even bigger, and use static CNAMEs.
jijojvalmost 11 years ago
Thank you, as a veteran Operations Engineer couldn&#x27;t agree more.
fideloperalmost 11 years ago
I&#x27;d like to hear what the consensus on using the Phusion base-image is. It seems to &quot;fix&quot; some pretty important issues with an Ubuntu base image, but I&#x27;m not sure they are really even &quot;problems&quot;.<p>I use Phusion&#x27;s base image almost all the time, especially since I tend to group services together (nginx+php-fpm, for example).<p><a href="https://github.com/phusion/baseimage-docker" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;phusion&#x2F;baseimage-docker</a>
评论 #7871487 未加载
评论 #7871468 未加载