9 ms·
Well, this person seems to have had a hard few months. I have a lot of problems with the post though: - Docker do not own CoreOS and did not create the distro
by amouat 10y ago
Well, this person seems to have had a hard few months. I have a lot of problems with the post though:
- Docker do not own CoreOS and did not create the distro
- Docker did not write OverlayFS
- There are issues with storage drivers. Don't use AUFS for the reasons outlined. I've had no issues with Overlay2, but note there is also devicemapper (which Red Hat have poured a lot of time into) and BTRFS. And ZFS now IIRC.
- It's not correct to say Docker was designed "not" to do persistent data. You do need to be aware of what you're doing, and I suggest not running DBs in containers until you have the solved the FS issues and have experience with orchestration.
- Kubernetes has been around for a while now and is fairly stable in my view. Swarm isn't rubbish, but the new version is very young and you may run into issues in the short term.
- With microservices, when you are running lots of small containers, you have to expect them to crash now and again. It's just the law of averages. You need to design your application to accept this and deal with it when it happens.
If you hit this many problems with any given tech, I would suggest you should be looking for outside help from someone that has experience in the area.
- bench_soup 10y agoI would like to add another factual error to the list - you can get linux 4.4 on debian stable with the backports instead of switching to an unstable release, and the current ubuntu LTS (16.04) runs 4.4 as well. It seems that they started to use docker while it was changing a lot, I didn't have any issue in the past few months with docker, but I don't use it in production.
- sulam 10y ago1) You've been running Docker for a few months. It could still be changing a lot, a few months is no proof one way or the other. 2) You are not running it in production. Poster is. All sorts of issues you don't care about on your dev box matter a lot in production. IOW, your experience can best be summarized by "just trying out Docker in a totally different way and it works great!" Irrelevant to this post.
- cjbprime 10y ago> note there is also devicemapper You know that trick the post mentions about how you have to keep removing images to stop your machines running out of disk space? Yeah, removing images doesn't actually reclaim disk space on devicemapper (!!): https://github.com/docker/docker/issues/3182 https://github.com/docker/docker/issues/3182 Oh, and devicemapper is the only natively supported storage backend on the AWS official AMI.
- patmcguire 10y agoYup, this is how I wound up with a 45 GB image on my development machine after futzing around with Docker for two hours. Does the same with OS X.
- strange_quark 10y agoYou have to use devicemapper in direct-lvm mode in order to get free space back. I agree it's not the best out-of-box experience, but so far we haven't had any problems running ECS on CentOS instances since switching to direct-lvm.
- coleca 10y agoYes, although loopback mode for devicemapper is the out of the box configuration for Docker even though Docker themselves doesn't recommend it for production. I had tons of issues w/devicemapper on CentOS 7 (kernel panics causing AWS to mark the host as unhealthy and kill it off) that I was finally only able to resolve by switching to AUFS under Ubuntu 16.04, which has worked pretty well for me. Knock on wood, AUFS has been pretty solid so far.
- bergwolf 10y agoexcept when it comes to a many-level-image, AUFS performance degrades dramatically
- merb 10y agowell the article had some issue's especially around coreos, but it's good that somebody points it out. Actually CoreOS produced pretty stable stuff: etcd, fleet. Actually with fleet/etcd combined with some cgroups i see barely a reason to use docker, I mean on Cloud's its actually another useless layer, at least for me, maybe not in Google scale.
- untoreh 10y agocontainer engines provide apis that orchestration softwares use to manage containers in all kinds of ways. In small setups with not much logistic going on i guess you can manage everything with fleet and some systemd units
- gshulegaard 10y agoHaving followed the history of Docker since its LXC roots and it decided to write its own LibContainer library the only thing I want to point out is: > It's not correct to say Docker was designed "not" to do persistent data. Actually...looking at a lot of things "missing from" or "difficult in" Docker can more or less be traced back to Docker's overriding philosophy of container runtimes. Things like not having an init process and optimizing user experience around single "Run" commands. Having relatively recently done a container retrospective, following the path of: OpenVZ -> LXC -> Docker -> now (CoreOS, Rancher, LXD, Mesos, etc.) I can't help but feel as if some of the "limitations" of Docker were more or less designed. I'm not saying it's a bad thing, being a Python enthusiast I see value in simplicity/having only one way of doing things...but I just wanted to point out that where you draw the line for what is considered "designed" starts to get blurry in areas of Docker's chosen implementation.
- wmf 10y agoDon't forget that DotCloud/Docker was originally basically a clone of Heroku, where "12 factor" dictated that all persistent data was stored in (non-containerized) Postgres.
- shykes 10y agoThat's incorrect. Dotcloud ran both stateless and stateful services on the same container fabric, unlike Heroku and every other PaaS. Specifically you could run a managed containerized postgres, mysql, mongodb, redis, rabbitmq, and custom stateful tcp services. Docker was a result of that design. Docker was specifically designed to NOT impose a model of ephemeral containers. For example, by default 'docker run' preserves all data.
- kimi 10y agoWe use https://github.com/l3nz/whaleware https://github.com/l3nz/whaleware for persistent, database-oriented workload with persistent data. We used to keep persistent data on a data volume, but now mount a native directory instead (2x faster). Might not be the True And Approved Docker Way, but who cares? it works well, and has been in production for a number of years now. No data loss ever.
- NetStrikeForce 10y ago> If you hit this many problems with any given tech, I would suggest you should be looking for outside help from someone that has experience in the area. I suggest using something that works for you and your business instead. If the only thing that works is $SOLUTION, but you have these difficulties, then yes by any means look for help. Edit: Ok, I feel compelled to extend my reply as I've been downvoted without comment, which is terrible. Here's the thing: You're not forced to use Docker just because it's the next hyped thing. It is great and yes, I use it. However there is more than way of doing things and the only reason to choose one technology over another is if it's better for the business. Anything else is just ignoring reality.
- sulam 10y agoI did not downvote you but it sounds like the author works at one of those horrible places where developers get to do things that make no sense in production without undergoing an operational review. He probably cannot change that (change would have to come from devs in a company like this), so your advice boils down to finding a new job.
- joatmon-snoo 10y agoMore specifically, it sounds like it's one of those places where developers got to do things in production that didn't make sense.
- hiou 10y agoAnonymous downvoting is pretty popular around here. I agree it's a very rude thing to do. Also, just an FYI, I was scolded the other day for acknowledging the downvoting in an edit. Edit: case and point
- cakeface 10y agoPlease don't be surprised by this behavior. It's in the guidelines to do this and is what most of us would prefer. > Please resist commenting about being downvoted. It never does any good, and it makes boring reading. > Please don't bait other users by inviting them to downvote you or announce that you expect to get downvoted.
- X86BSD 10y ago"Issues with storage" is an understatement. Linux has major issues with storage. I see no way forward for Linux in that area unless they adopt ZFS. How many filesystems has the Linux world created in the last 20 years? Of those how many are rotting piles of tire fire? Filesystems are hard to get right. ZFS is the way forward. For cross compatability, for reliability, for stability, for lots of use cases. Btrfs is another tire to throw on the burning pile of other filesystems that won't work out in Linux. Let the down votes begin. But Linux has some major architectural issues that eventually the Linux faithful will have to admit to. Containers. Filesystems. Observability. Though bless him Brendan Gregg is trying his hardest to help here. Portability. And this is what is so painful for the rest of us to watch or deal with. This inability for the Linux folks to admit these glaring architectural problems. Problems they refuse to look outside their bubble to see how others solved these problems and adopt solutions that have already solved these problems. They just want to continue to bury their heads in NIH soil. And double down on trying to solve these issues, poorly, on their own without any awareness of how others have solved these issues. People outside Linux land just might have the right ideas on how to solve these problems! But I expect no one in that camp to acknowledge this and down vote away. Sigh.
- steelbird 10y agoSir, you have spoken well. What OS/distro should I be looking at?
- user5994461 10y agoCoreOS, as stated by the roadmap of the article. /s
- chrisp_dc 10y agoEnterprise: Solaris and use zones. Internal/Personal/POC: FreeBSD 11 and use jails. Both get you ZFS and something lighter-weight than VMs. Need Linux? Bite the bullet and use VMs.
- X86BSD 10y ago
- onestone 10y agoYeah, I flagged the article for being grossly inaccurate. I've had a lot of frustrations with Docker myself, and will happily switch to Rkt after it matures a bit more. Docker surely deserves a lot of criticism, but it should at least be valid and well-informed.
- hiou 10y agoI think Docker can somewhat be seen as a generalized term like Linux. Linux doesn't write EXT4 but it is often referred to as "Linux filesystem". Docker has been actively trying to become to household brand name for containers so it's difficult for me to give them a pass with your line of reasoning. > Re Persistent Data: You are probably going to have a tough time if you try to do persistent data. Containers really excel at stateless tasks(or temporary state like caching). Certainly it's doable but for someone early in their adoption the proper toe in the water is probably the stateless business logic not the state layer.
- antocv 10y agoThat is Dockers problem, they even want to be on Windows, I mean come on. But thats docker the company for you.
- benballjr 10y agoCan you blame them for wanting to break more into the Microsoft ecosystem? Besides, Docker's company mentality aligns pretty closely with a company like Microsoft, there's probably a lot for them to learn. A huge plus from a business perspective, but it's easy to see why it wouldn't sit well with open source advocates.
- antocv 10y agoYup I blame them for that. (I is freedom software advocate) Not a company of good taste in my book.
- fapjacks 10y agoI thought the whole Windows thing was totally stupid (I is also freedom software advocate). I've been a big fan of Docker for about three years, put loads of stuff into production at a handful of different companies, most recently using native Swarm features that came with 1.12. Personally, I thought the Windows thing was a gimmick. But what I see (as someone that has access to the Docker community through open source) is this enormous group of people who are chained to Windows technologies. And for years and years they've watched all the cool kids play with the cool toys, from the sideline. And what Docker-for-Windows has done -- with help from a new kind of Microsoft -- is expose all of these very eager people to containerization and microservices and open source and free software more generally. Having been exposed to loads of these people (and there are an enormous number of them), I think it means a lot of important things about bringing open source and free software into the fold for these people. Docker-for-Windows opens the door for a yuge number of developers to appease their enterprise leadership by sticking with the Microsoft brand, while also having the whole world of free software at their fingertips. I can see this world on the horizon in which open source and free software concepts have broken into the Microsoft ecosystem, and I believe it comes waving the Docker flag. I am still extremely suspicious of Microsoft as a company, and wouldn't pay for Windows if my life depended on it, but you can't say they aren't doing some interesting things over there at Microsoft lately.
- btbuilder 10y agoMinor: Ubuntu 14.04 can run an LTS 4.4 kernel via the linux-generic-lts-xenial package.
- paulddraper 10y ago> It's not correct to say Docker was designed "not" to do persistent data. Any monkey can run a bunch of stateless systems. It's the stateful ones that have the worthwhile problems.
- digi_owl 10y ago> - Docker do not own CoreOS and did not create the distro Not just that, CoreOS is basically made to push systemd-nspawn as a container framework as hard as possible.