Hacker News new | past | comments | ask | show | jobs | submit login
Dotcloud becoming Docker (docker.io)
248 points by pjvds on Oct 29, 2013 | hide | past | favorite | 70 comments



As a user of Docker, I'm excited. But as someone who uses the dotCloud PaaS right now to run a company, I'm a little annoyed, mostly at myself for not seeing this coming.

Clearly there's a diversion of resources away from the dotCloud PaaS to Docker, and that's going to have a toll somewhere. Despite the company's reassurances that everything is business as usual, I know that Docker [the project] is just too much of a beast and eventually the Docker [the company] will need to move on from the PaaS. (I should know, since I gave a talk about how "Docker is the future" just a few weeks after Docker was announced.) [0]

I'm not really sure what my choices are now, either; DigitalOcean, I guess? I don't want to manage servers myself, and I want to be able to pay on the memory-usage axis for my app instances (which Heroku doesn't allow). I wasn't super excited by DO last year, but maybe things have changed.

My current "light at the end of the tunnel" is hoping that the Docker-based PaaS ecosystem matures, but for now none of them seem like they're mature enough, and it's tough to keep up with all of them since it seems like another one pops up each week.

Here's my wishlist:

-- (1) command-line client for deployment via git repository and doing anything related to deployment (add new instances, remove instances, create new environments, assign domains to the PaaS router, etc.)

-- (2) clear pricing

-- (3) I can pay for more memory as I need it

-- (4) ability to specify environment variables in a configuration file that take effect on the container process

-- (5) web interface for administering the account

Anyone have any recommendations?

[0] http://spreecommerce.com/blog/spreeconf-DC-speaker-highlight...


There's no need to make a hasty decision -- we haven't changed the platform in any way or lowered our support efforts. If you've found that you can count on the dotCloud PaaS for your business (and thank you for that!), then nothing changed today. We're still here for you.

If you feel like you want to get ready for running on another platform, or using Docker as it matures, then I'd suggest the first step would be to move your databases to a neutral third party provider. With that in place, you can still run your code on the dotCloud PaaS, or anywhere else. As Docker and the ecosystem around it mature, there will be many more options.

I work for Docker Inc on the dotCloud PaaS and manage the support. If you have more private questions, you can reach us at support@dotcloud.com

/Andy


Thanks for the reassurance, Andy. We've chatted a couple of times in IRC and you've always been awesome in my complicated support requests.

Still, my concern isn't about the quality of the dotCloud PaaS going down -- it's pretty high already, and I don't have any plans to move immediately.

Instead, I'm more concerned about the shift in general. You know as well as anyone that software that doesn't get love and care eventually rots, and the blog post explicitly says that the focus is now on Docker and away from the PaaS.

From that, I infer that the PaaS is eventually going to have to go away as is the natural order of things. Since my company depends critically on that piece of infrastructure, I need to make sure I'm covering my bases with an exit strategy if you do decide to turn out the lights on the PaaS, or at least make sure I've thought about what to do as an alternative.

I also hope you guys make a bajillion dollars on Docker. It's really an excellent idea whose time has come.


Hey John, thanks for the kind words! I just wanted to add one datapoint to back Andy's response: the resource allocation to dotCloud has been the same for the last 6 months, and there is no change planned to that allocation as of today. In other words, if you were satisfied with our service over the last few weeks, you are likely to continue to be satisfied for months to come.

I would worry about an exit strategy too if I were in your shoes - but just know that your trust and success as a customer matters more to us than any bajillion of dollars we would stand to make if we betrayed it.

In fact I'm pretty sure we can "make a bajillion dollars" and continue to earn your trust :)

Thanks for doing business with us John! Docker is in part thanks to you.


Wow, its people like this (both comments from docker/dotCloud) that make you really love a service. In fact, I would have put my next side project on dotCloud if the prices weren't steep - but I get that they're for businesses and not for side projects.

I guess DO is good for that stuff (at the very least! - I'm sure they're good in general as well, I've actually been reading/discussing them a lot - mostly for hobby projects though).

EDIT: Forgot about dokku/flynn as a PaaS (plugin?). Also learned about other services in the thread which I'll be looking at.


How the heck can you put a PaaS business on the back-burner while you bet the company on a small piece of software and expect customers to stick around?


It depends on your definition of "back-burner". DotCloud might no longer be one of the most innovative PaaS, adding features left and right like it used to - but there's no reason it can't continue to be a reliable place to host your applications. DotCloud production customers want availability, performance, reliable support, good tooling, prompt bugfixes, and generous advance warning and transition support in the event of a sunset. It's very important to us that they continue to get all these things.


I actually thought "back-burner" was generous:

"While Docker, Inc. will continue to offer PaaS services under the dotCloud brand, we will be devoting the vast majority of our resources towards growing Docker and the Docker ecosystem, and have fundamentally re-oriented our business model towards Docker-related products and services."


Those are not mutually exclusive :)

dotCloud is quite stable and mature, so running and maintaining it at the quality standards of our customers (including support, 24/7 ops, bug fixes, etc.) requires surprisingly little resources. Little enough that we can "devote the vast majority of our resources towards growing Docker" while continuing to offer a quality product.

My argument to support this is that we have actually been doing this for 6 months, and so far there hasn't been any kind of exodus - in fact we have many more paid customers than we had 6 months ago :)

I think this is one of the reasons the public PaaS market is difficult: at the end of the day, past the excitement of developing a new app, people will pay for a reliable service that doesn't get in their way - not for the bells and whistles. It is very difficult to differentiate a paas on features.


The issue is really about the future. Your service is as useful today as it was yesterday or six months ago, but the perceived usefulness of your service a year from now has gone way down. We all appreciate your honesty about the pivot. But how will your customers fare in the long run?

It is kind of a strange situation. You're clearly the leader in hosted Docker PaaS at the moment. However, you're also promoting an ecosystem where all these Docker based startups are springing up, like deis.io. Why won't you be out innovating them? I fear you'll be moving down the stack, and letting others fill the PaaS role. It isn't clear to me how you're going to make money out of Docker (perhaps it isn't to you either).

I say this as someone who was going to be deploying my first Django app in a couple of weeks. I have a dotcloud account, and had messed around a little. That was my deployment plan. However, I spent tonight reading the Heroku docs. It seems at some level you realize you've lost out to Heroku, and have pivoted to this shiny thing that is getting lots of traction. That's great, and I'm sure that is the right path to take business wise. However, it doesn't sound like your current dotcloud customers will get any particular benefits from the great Docker fueled future.


I'm leaning very much towards a Vagrant/Ansible setup to provision/deploy/configure instances across a range of VPS providers. I'm actively testing with DigitalOcean/Linode/AWS right now, spinning up Ubuntu 12LTS and 13 instances both locally (in VirtualBox) and remotely, and it's looking very promising. It'll only get you 1,2, and 4 out of your list though – but does have the big advantage of not suffering "lockin" to any of the VPS vendors. It also gives me really easy local Vagrant/VirtualBox development, test, and A environments – with very high assurance that they're all sensible replications of the deployed environments.

If your app/service is architected to make spinning up a new 1G or 2G instance when your 512M one is running short of resources, "faking" 3 would work. I'm not sure where I'd start looking if I needed a web interface for it all though…


Gabriel Monroy here, creator of Deis, one of the Docker PaaS's (http://deis.io/overview/). I'd love to pick your brain about your current dilemma and see if we can help. Email me: gabriel _at_ opdemand.com.


Mind if I e-mail you too? My company is considering using deis for deployment in the near future.


Of course! I'm also on twitter @gabrtv or #deis on Freenode.


Service looks promising. Will definitely get you on twitter sometime!


I think the shifting nature of PaaS is something inherent to the market and ecosystem, and something that should be taken into account as such.

I struggle to find a PaaS as well, but I think we should have an appreciation of what the market is like, and what it takes to stand out and carve out a business for yourself these days.

Marco's thoughts on web hosting are probably still relevant on the subject of PaaS: http://www.marco.org/2013/10/15/godaddy-mt.


There are lots of hosting providers besides digitalocean - linode is a big one, so is joyent.

I've been trying out digitalocean, but they make me nervous about reliability. Twice in 2 weeks I've gotten nonsensical abuse notifications (spamming, copyright infringement). One of the complaints was only 10 minutes after I spun up a droplet - my deploy script hadn't even finished. Makes me very nervous that DO will shut off all my droplets due to complaints about what the guy who previously owned the IP address did.

MPAA-based failure is far harder to plan for than disk failure.


Those providers are not PaaS providers, though -- they're IaaS providers. I don't want something where step 1 is "install an OS" or "configure iptables". I want something where deployment looks more like "git push origin/master --app production".


With a bit of preparatory work first, how close does this sound:

> cd app/production > vagrant up --provider=digital_ocean

?


Maybe hold tight and migrate to one of the many Docker-friendly/based PaaS that are booting up.


That's my current light at the end of the tunnel, but for now none of them seem mature enough to put my customers on. And it seems like there's a new one every week!

I imagine it'll be easy-ish to migrate between Docker-based PaaS's, though; just upload the container and change the provider-specific config, right? So that's a little reassuring.


Windows Azure has the features you listed, although I'm not sure about #4. I too wanted a PaaS cloud, not an IaaS, and I found Azure to be the best option for my needs. I would have prefered a European company for legal reasons but there's no good one yet.


Not sure how much it meets your needs (I know it does on 1 and 5, but probably not on 2) but have you considered Windows Azure? They have managed Linux instances with git deployment and a great web interface.


There are a couple other PaaS options as well coming in the near future. For open source options that are currently in development, there's https://flynn.io/ and http://deis.io/. For production-ready Enterprise private PaaS (meaning that you host the PaaS on your own hardware) that are currently ready for production use, there's Stackato (http://www.activestate.com/stackato), OpenShift (https://www.openshift.com/), and Cloud Foundry (http://www.cloudfoundry.com/).

If you're just looking to deploy a single application on Digital Ocean or some other VPS, the digitalocean plugin for knife will really help out (https://github.com/rmoriz/knife-digital_ocean).

EDIT: In regards to Stackato...

-- (1) command-line client for deployment via git repository and doing anything related to deployment (add new instances, remove instances, create new environments, assign domains to the PaaS router, etc.)

We have a CLI for doing this, as well as a web API and a Python library for communicating with the API (see https://github.com/bacongobbler/python-stackato)

-- (2) clear pricing

We have a clear memory-based pricing plan. This allows users to scale out their infrastructure to as many nodes as they like, and only have to manage their total memory in their clusters to figure out pricing.

-- (3) I can pay for more memory as I need it

It's on your own hardware. EC2/Rackspace/VMWare pricing depends on their model.

-- (4) ability to specify environment variables in a configuration file that take effect on the container process

We have a couple of default env vars in the application container, as well as letting users configure their own envvars. See http://docs.stackato.com/reference/environment.html and http://docs.stackato.com/reference/stackatoyml.html

-- (5) web interface for administering the account

We have both the CLI, the API, and a web interface. Check out our YouTube channel at http://www.youtube.com/user/ActiveStateSoftware for tutorials around the Stackato console, or just take a look at http://docs.stackato.com/ :)

Disclaimer: I work as a product manager for ActiveState, working on Stackato. We'd love to have you over here! We're also on Freenode, channel #stackato if anyone is interested in this stuff :)


Candidly, Stackato is an interesting platform/fork, but I looked into your pricing before and it's not really all that reasonable. If pricing was more realistic, or there was an open-source release of your CF fork, I'd be more interested.


Stackato is built for large enterprises who want the convenience of a public PaaS (like Heroku), but with the flexibility to run it in the datacenter of their choosing. With that, our pricing is built for large enterprise, which entails support calls, training sessions, webinars, bug reports, and all of the other good stuff that comes with enterprise support models. We really pamper you through the startup process to get you running on your feet. I understand though that our pricing is unreasonable for smaller businesses. We are however very open with our customers, and a lot of our existing customers really like that aspect. A great example of this would be the interview we did with Chris Turra at Mozilla on Wired: http://insights.wired.com/profiles/blogs/upholding-the-open-...


Hey everyone, dotCloud/Docker founder here. I just wanted to thank the HN community for your support. Your feedback - both positive and negative - has shaped Docker more than you know.

I also want to confirm that, yes, the trust and satisfaction of our customers matters more to us than any amount of money. You can always make more money later, but once trust is gone, it's gone. So expect us to work ourselves to exhaustion to continue to earn the trust of our paas customers, no matter how crazy things get with Docker (and I can tell you it's only going to get crazier!)


And if you prefer to learn by practice, here's an awesome online tutorial: https://www.docker.io/gettingstarted/


i remember how crazy it was at pycon 2013 when you all announced that you were open-sourcing docker... i'm so glad its working out! wish you all continued success.


Congrats! This pivot was really successful for the company.


This is a smart move. Some people might call it a pivot, but I think it's really doubling down on what people really want. dotCloud is not going to change the world (or make a truckload of money) by being Heroku's also-ran.

Instead, they are taking something they built that is really interesting to a lot of people and building a business around it. As someone who is quite interested in docker, I'm glad that they are turning it into a real business. This benefits pretty much everyone who wants to see docker succeed.

Also, it's really smart that they are keeping dotCloud alive. It would be incredibly irresponsible for them to kill that business just to push faster on docker.


I was with you until the last sentence. Why would it be irresponsible to kill the Heroku also-ran to push faster on what people really want?


Because there are people running businesses on dotCloud currently?

Because, at least in my humble opinion, it's actually better than Heroku?

Because, at a minimum, cutting it off at the knees would engender tons and tons of bad will amongst their current customers?

Because the customers deserve a couple of 'writing on the wall' style posts like this to begin thinking about migrating to alternatives before the cutoff is actually announced, forcing their hand in what could be 'too short a time period' to get migrated?

The more time they buy their existing customers before dismantling what works, and what people are paying them for, the better.

That said, this is the 'writing on the wall' that people should be looking for alternatives, at the barest minimum.


It may not be the writing on the wall, since running a docker PaaS will be a useful way to understand ... what problems you encounter while running a docker PaaS.

But we'll see, I guess.


It would be irresponsible to their paying customers to just kill dotCloud. I have no idea how much money they are making from it, but whether they have 100, or 10,000 customers, they owe it to them to provide them the best experience possible whether they are ending dotCloud or keeping it as a going concern.

Frankly, docker could be (and probably is) a great marketing tool for them to basically say, "Docker is great, and if you are looking for a cloud hosting, check out dotCloud." Even if docker related services don't make a lot of money right away, dotCloud is something that is making them money today.


Dog-Fooding. As long as you have an in-house product that uses the infrastructure you build, you'll immediately notice when things go wrong.


Sometimes you have to build products that make enough intermediate revenue to get you to where you're trying to go.


PR. Witness how everybody goes apeshit whenever Google closes a niche service.


Docker shall not be distributed or downloaded to or in Cuba, Iran, North Korea, Sudan or Syria

This statement occurs in the docker README[0]. If at all possible, one would want to keep such channeling of potentially offensive government policy out of an open source software project's public documentation. For one thing, there are many enthusiastic open source programmers residing in the above list of countries.

The NOTICE[1] document explains that

Like all software products that utilize cryptography, the export and use of Docker is subject to the U.S. Commerce Department's Export Administration Regulations (EAR) because it uses or contains cryptography (see http://www.bis.doc.gov/index.php/policy-guidance/encryption). Certain free and open source software projects have a lightweight set of requirements, which can generally be met by providing email notice to the appropriate U.S. government agencies that their source code is available on a publicly available repository and making the appropriate statements in the README.

I'm not familiar with seeing other open source projects from American organizations state that they may not be downloaded in the above list of countries. Is the use of cryptography in docker different in a way that makes the docker organization more at risk from legal challenges from the federal government in this regard, or are docker being anal and xenophobic in blithely displaying this notice?

[0] https://github.com/dotcloud/docker/blob/master/README.md

[1] https://github.com/dotcloud/docker/blob/master/NOTICE


This is kinda a non-negotiable for them, isn't it? It's not like they suddenly decided to enforce the USG policy and make a big deal about it.

IANAL, but it seems prudent to acknowledge that the crypto work was done in the USA and therefore falls under the export policy that ALL exportable software falls under. My company has to include this warning on its software and we even have two different versions (domestic and export) to deal with this issue.

I know it's unpopular, but why make Docker answer for it? Take it up with the USG if it makes you that unhappy.

Better yet, strip out all the non-exportable code, replace it with code written from outside the USA and presto-changes, you've solved a problem for the whole world.


Docker maintainer here. I also hate having to put this in the README (and hate it even more each time someone from Iran offers to contribute... what a waste of talent and energy this policy creates!).

But we triple-checked with our legal counsel and they confirmed it's the only way to stay unambiguously out of trouble. As un-tasteful as it is, it's better than causing unnecessary legal trouble for docker contributors down the road.

If you're interested in the subject here's an edifying expose of the situation: http://harpers.org/blog/2013/08/andrew-cockburn-on-the-failu...


Hi, thanks for the answer! I suppose it would be possible, without impacting the legal protection afforded by the notice, to preface the notice with some language indicating that docker would prefer it not to appear in the README, e.g. "unfortunately, due to ...". But in any case, congratulations with all the momentum you've gathered and I'm looking forward to learning more about docker here.


That was the exact purpose of the introductory line "Brought to you courtesy of our legal counsel." :)

Coincidentally we just tweaked the language to match Apache and OpenSSL. It's pretty similar, but doesn't specifically name countries - it just refers to "whatever the rules happen to be under US regulation".

https://github.com/dotcloud/docker/commit/b48fc9657976091ff3...


There is a small open source Linux distro called Fedora that has the same "xenophobic" and "offensive" notice.

https://fedoraproject.org/wiki/Legal:Export


After another legal review, there is another pull request open / probably part of 0.6.5 which changes the README to have language which the DSFG considers free.


I have been using Docker for a couple of days now, and am really in love with it! Congratulations on the new direction and wish you all the luck in the world!

I'd like to ask one question though - It seems that it's possible to limit the amount of cpu and memory of each container, but not so with the filesystem. I know this is some issue related to AUFS being used internally. But I would really like to know whether there is _any_ hack that allows us to limit the size of the filesystem, or whether it's in the pipeline?


> [is there] _any_ hack that allows us to limit the size of the filesystem?

Docker 0.7 will let you do that, since each container will have its own (thin) block device, and therefore have a default size limit (which can be trivially bumped up if needed, of course).

Now to anticipate your next question (assuming it is "when will Docker 0.7 be available?"), the answer would be "pretty soon", since the core team is ironing out the last issues before merging to master and releasing :-)


There is definitely a hack :) You should join the #docker channel on irc (freenode) and ask for keeb or jpetazzo, they can help you out. If they don't, someone else probably will. People are very nice and useful there.


Yep, as shykes says, I'm always available to help.

Take a look at how I built tryrethink.info (which covers this topic and more) -> http://nick.stinemat.es


Thanks! That was really helpful!


Can someone please explain what is Docker exactly? I've read this page, http://www.docker.com/about_docker/docker/, and didn't understand. What exactly does it encapsulate? What does the application see when it queries its environment?


Think about it as a very lightweight VM. You can do everything you can in a VM (which, in turn, can do everything you can in your regular system). Only thing is, it is a wrapper over lxc (Linux Containers) which means that you can only run Linux flavors and the host needs to have an advanced kernel (~3.8). Advantage is that if a VM needs ~80s to boot, a docker container can boot in <2s. And that's possible because a docker container shares the kernel of the host, (unlike VMs, which are all isolated)


Oh, so it's not only a deployment mechanism, but an actual runtime "VM".

What does it add over linux containers?


I gave some of my thoughts on the topic here: http://stackoverflow.com/questions/17989306/what-does-docker...


Linux containers are its main ingredient. Docker itself provides a system for constructing the container images (with a neat super-fast caching/inheritance system that can pull from a central image repository), and manages the lifecycle of the containers. It also does some magic with ports and service discovery.


Technically - Creation, management, communication, networking. Smartly.

Ecosystem - more and more people every day are integrating with their tools, building business around Docker, or extending support of existing business to Docker.


This link does a more in-depth explanation: http://www.docker.io/the_whole_story/#Background

In general, Docker encapsulates and runs your processes and file systems in an exactly repeatable way, and in a format that you can replicate across a wide variety of machines.


VMware is currently valued at 35B. Who is to say Docker couldn't be the next VMware? I would invest in these guys if I could.


More likely Red Hat or someone else will buy them before that happens.


Docker just keeps growing and growing. The amount of new businesses springing up to take advtange, along with some pretty heavy hitters looking to adopt, Docker has a fighting chance to become a standard from which everyone benefits.


It's really interesting how Docker has become this beast, but was originally developed as a practical way to run their business. How many companies have been formed this way?

It's an great thing to point to when a startup doesn't want to invest any time into getting their fundamental product right and just want to hack together using existing and known technologies.


Ironically enough, in this case, Solomon originally started dotCloud as a tool to help manage server images, which he then leveraged into a business based on the tool, which now seems to be transitioning back to the tool itself as the core.


Congratulations is well in order. It's so exciting to see the progress the team and platform have made in such a short amount of time.

Only months ago at PyCon Solomon Hykes was showing off Docker to the public for the first time:

http://www.youtube.com/watch?feature=player_embedded&v=wW9CA...


Thanks! It has been a crazy ride, and it doesn't look like it's going to slow down any time soon!


So is Docker, Inc. going to provide orchestration for Docker containers in the future? Are they going to host private registries?


If you're looking for the clickable version of the graphic on the OP (where the Read More links work), it is here:

http://www.docker.com/about_docker/


Can't a PAAS use dedicated hosting and provide a cheaper price instead of the overcriped ec2 ? (is there one?)


I found today http://modulus.io, they use different clouds. But definitly at a better price as dotcloud/nodejitsu/heroku, especially for smaller projects with SSL. Nice are the backend statistics without paying for any extra service.

But i think in the next months many new PaaS services will rise, thanks to docker ;-)

And i hope many new without amazon (amazon is not bad, but expensive).


I don't think it's too far off.


hello wowlrd! congrats!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: