Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker Machine is now in maintenance mode #4537

Open
shin- opened this Issue Jul 13, 2018 · 35 comments

Comments

Projects
None yet
@shin-
Copy link
Contributor

shin- commented Jul 13, 2018

As has been obvious for some time now, we've slowly stopped implementing or accepting new features for the project. Its desktop usage has mostly been supplanted by our Docker Desktop product. Provisioning on a variety of Cloud providers is overall better achieved using infrakit. Overall, pursuing active development on the project doesn't make sense anymore at this point, which is why we're officially closing the faucet for non-bugfix changes, starting today.

I'm sure many will want to chime in on this, please keep the discussion civil and keep it inside this thread so we can keep things manageable.

@JJayet

This comment has been minimized.

Copy link

JJayet commented Jul 13, 2018

Oh :(

Well this was nice while it lasted :)
Thx everyone for the good work !

@publicarray

This comment has been minimized.

Copy link

publicarray commented Jul 13, 2018

I would ask that you also update the readme.md

@frebib

This comment has been minimized.

Copy link

frebib commented Jul 15, 2018

If official support for machine is closing, what is the likelihood for continued community-driven support in this repo?

@SvenDowideit

This comment has been minimized.

Copy link
Contributor

SvenDowideit commented Jul 16, 2018

for those of you needing machine, there is some activity in the https://github.com/machine-drivers organisation, and it may make sense for you to work on, and release from https://github.com/machine-drivers/machine...

@gbraad

This comment has been minimized.

Copy link
Contributor

gbraad commented Jul 16, 2018

We have already looked into adding patches to this organisation, as they seem to be held from being merged here: #4509 (This is blocking for localized versions of Windows). Best is to move ahead with some form of releases, however for us: minikube and minishift we only need to link against a library.

@justinclift

This comment has been minimized.

Copy link

justinclift commented Aug 2, 2018

@shin- As a thought, the new user "Getting Started" docs still use docker-machine as a central part of the intro.

For people interested in updating the docs, which should they walk people through instead?

@efrecon

This comment has been minimized.

Copy link

efrecon commented Aug 30, 2018

I think that this really is a shame. The real power of machine was somewhere between the simplicity of getting things work on one machine using Desktop and the complexity behind infrakit. machine was perfect to fire up a few machines for testing distributed workloads at smaller scale.

@gilbsgilbs

This comment has been minimized.

Copy link

gilbsgilbs commented Aug 31, 2018

Hi!

Does somebody have an alternative software for Linux? I don't want to run docker as root on my host machine and docker-machine was giving some isolation in this respect. Is there any plan for Docker for Linux?

Thanks!

@shin-

This comment has been minimized.

Copy link
Contributor Author

shin- commented Aug 31, 2018

@gilbsgilbs You can still use docker-machine as you currently do!

@gilbsgilbs

This comment has been minimized.

Copy link

gilbsgilbs commented Aug 31, 2018

@shin- Thanks for your suggestion. I'm starting a new project, so using docker-machine for it would be a weird move, wouldn't it?

@justinclift

This comment has been minimized.

Copy link

justinclift commented Aug 31, 2018

@shin- Weelll... being closed to PR's kind of means using it for new projects is probably a bad idea. 😉

@shin-

This comment has been minimized.

Copy link
Contributor Author

shin- commented Aug 31, 2018

@justinclift I don't want to get into too much detail because we've got more info coming in a prepared statement, but as I tried to state in the original post, the project is not closed to PRs; we're simply looking to limit those to bugfixes as opposed to new features. If the featureset of the current iteration of docker-machine fits your needs, there is no reason to abandon it, even for new projects.

@Vanuan

This comment has been minimized.

Copy link

Vanuan commented Sep 13, 2018

It looks like infrakit is not active either. There were no releases for more than a year, no update on DockerCon 2018, no user documentation similar to https://docs.docker.com/machine/

Docker machine documentation suggests to try Docker Cloud which in turn is shutting down in favor of Docker EE (which is not generally available)

It all encourages to either fork the project or look elsewhere: https://landscape.cncf.io/grouping=landscape&landscape=infrastructure-automation&sort=first-commit

Not complaining, just describing my perspective.

@justinclift

This comment has been minimized.

Copy link

justinclift commented Sep 13, 2018

Interesting. Looking at the commit history for InfraKit, although it does receive new commits every few days, it mostly appears to be a one-man effort.

Activity seems to have dried up around April/May. Guessing people's time was redirected to other stuff.

Is that an incorrect way of looking at things?

@gbraad

This comment has been minimized.

Copy link
Contributor

gbraad commented Sep 13, 2018

@shin- but many of the PRs (like bugfixes I provide to make internationalization on Hyper-V working) have not been taken for merge. This is not a good indication of "we're simply looking to limit those to bugfixes as opposed to new features" in light of "there is no reason to abandon it, even for new projects".

@shofetim

This comment has been minimized.

Copy link

shofetim commented Sep 17, 2018

@shin-

I don't want to get into too much detail because we've got more info coming in a prepared statement

Could you link to that official statement (whenever it is published?) I can't find it.

@aliceminotto

This comment has been minimized.

Copy link

aliceminotto commented Oct 10, 2018

I strongly recommend changing the docs so that they are up to date.
My last hour was a senseless exploration of boot2docker, which clearly points to docker machine, which has a warning on its main page advising to use docker cloud as an up to date technology. This points to the Docker cloud doc description (not the migration page!!!!), which required me some googling to find out it was discontinued in May (but announced in March, so 7 months ago). Now came here to suggest removing the warning from the docker machine doc, I find out in this 3 months old issue docker machine is also being discontinued.
This is just not how documentation should work. I'll revert back to some ad hoc solution, but I'd abandon docker if I wasn't already using it.

@BretFisher

This comment has been minimized.

Copy link

BretFisher commented Oct 15, 2018

@aliceminotto It would help us all update outdated doc's if you could point to the sites or pages you're talking about.

docker-machine isn't going away, it's just not increasing the scope of features.

Docker Cloud isn't going away, it's just no longer used for server provisioning/management. It's still there for image building. Docker has other tooling for production servers like Docker for AWS, Docker for Azure, and DCI for Docker Enterprise.

@tianon

This comment has been minimized.

Copy link
Member

tianon commented Oct 18, 2018

I had forgotten entirely about the old http://boot2docker.io website and didn't realize the notice there was worded so poorly (apologies for any confusion that contributed to!) -- I've now updated (and slimmed down) that content to hopefully clarify better that boot2docker the ancient CLI tool is what was deprecated in favor of Docker Machine and that boot2docker the distribution is not deprecated but is rather in maintenance mode (same as Docker Machine).

To put that another way: new Docker releases, kernel updates, etc, but concerted attempts to keep new features/functionality to an absolute minimum to ensure continued maintainability for the few folks who can't yet transition to the better-suited Docker for Windows / Docker for Mac products or the production server tooling / solutions referenced above (Windows 7 users who can't Docker for Windows at all, Windows 10 Home users who thus can't Hyper-V, VirtualBox users who thus can't Hyper-V, etc etc).

@afbjorklund

This comment has been minimized.

Copy link
Contributor

afbjorklund commented Oct 21, 2018

@tianon : you might also want to mention Linux users who don't want to transition to Mac or Windows...

@Vanuan

This comment has been minimized.

Copy link

Vanuan commented Oct 22, 2018

@afbjorklund Why do you need boot2docker if you're already using Linux?

@afbjorklund

This comment has been minimized.

Copy link
Contributor

afbjorklund commented Oct 22, 2018

@Vanuan : either because your distro was too old (e.g. RHEL6), or because you weren't allowed root...

Either way, transitioning to Docker Desktop is not an option - it's either Docker Engine or DIY LinuxKit ?

I would like to thank the makers of docker-machine and boot2docker, for making docker more acessible.

And with the effort of machine-drivers (for KVM), hopefully it will continue working for a while longer still

@Vanuan

This comment has been minimized.

Copy link

Vanuan commented Oct 23, 2018

Why would I use server distro for desktop? And why I'm not administrator of my desktop? But somehow I'm allowed to access KVM?

It looks like you're looking for solution to run docker on KVM server? If that's the case, I'm currently exploring infrakit here: docker/infrakit#913

But if you're only looking to run docker on Linux desktop I don't get why wouldn't you install latest Ubuntu along with Docker CE. If you want to run it in VM then do so. You can mount your home directory in VirtualBox and use docker over SSH. What's the problem here? There's no Docker for Linux Desktop because it doesn't make sense. At least to me.

@justinclift

This comment has been minimized.

Copy link

justinclift commented Oct 23, 2018

Why would I use server distro for desktop? And why I'm not administrator of my desktop? But somehow I'm allowed to access KVM?

Some people have to use whatever desktop OS their employer hands them. RHEL6 is an example that I've (a few months ago) been told about by a guy working in a stock trading place. 😉

As a general data point, with Libvirt it (at least used to) have a concept of VM's that users could run in their account, that would be just for them. eg not accessible to other people logged into the same machine

Not sure if that was ever developed in any depth, as most of the Libvirt development effort went towards "system level" VM things instead of user level.

if you're only looking to run docker on Linux desktop I don't get why wouldn't you install latest Ubuntu

Quite a few people dislike Ubuntu for one reason or another. 😉

@AkihiroSuda

This comment has been minimized.

Copy link
Member

AkihiroSuda commented Oct 23, 2018

Starting with v18.09 (DOCKER_HOST=ssh://), setting up remote Docker machines without docker-machine is really trivial: https://medium.com/lucjuggery/docker-tips-access-the-docker-daemon-via-ssh-97cd6b44a53

@Vanuan

This comment has been minimized.

Copy link

Vanuan commented Oct 23, 2018

As a general data point, with Libvirt it (at least used to) have a concept of VM's that users could run in their account, that would be just for them. eg not accessible to other people logged into the same machine

Yes, its called qemu://session
Latest GNOME even has a nice app for that - Boxes: https://en.wikipedia.org/wiki/GNOME_Boxes

User mode KVM virtualization has some drawbacks wrt networking. So I think Virtualbox is the only choice in those conditions.

And to have CLI for VirtualBox the choice is vagrant. You only need some Linux distribution to run docker on top of it. And the most battle tested is Ubuntu/Debian. You can download any other distro though. But you have to package it yourself to use with Vagrant: https://www.vagrantup.com/docs/virtualbox/boxes.html

@afbjorklund

This comment has been minimized.

Copy link
Contributor

afbjorklund commented Oct 23, 2018

Just saying that docker-machine was a good solution for those Linux users, just as it was for users of old Mac and old Windows... All that it needed was to run docker on a non-standard port, instead of hardcoded 2376 ? And a new qemu driver that didn't require libvirt group (i.e. root). Maybe infrakit/hyperkit will be an alternative in the future, but at the moment (the link above) it looks quite rough around the edges still.

@Vanuan : I know about the ubuntu/vagrant options, I just referred to it simply as "Docker Engine" above.

@justinclift : each user gets their own ssh keys/docker certs, so the machines are reasonably separated.

@justinclift

This comment has been minimized.

Copy link

justinclift commented Oct 23, 2018

@afbjorklund No worries. It's been years since I worked at Red Hat on the Libvirt team. These days I generally just use it when diagnosing issues, rather than still being super in-depth with it. 😄

@Vanuan

This comment has been minimized.

Copy link

Vanuan commented Oct 24, 2018

@afbjorklund Let's clear this up.

you might also want to mention Linux users who don't want to transition to Mac or Windows...
Either way, transitioning to Docker Desktop is not an option - it's either Docker Engine or DIY LinuxKit ?
I know about the ubuntu/vagrant options, I just referred to it simply as "Docker Engine" above.

boot2docker is both distribution (boot2docker.iso) and the tool to manage virtualbox (boot2docker-cli). boot2docker.iso includes Docker CE (former Docker Engine):

https://github.com/boot2docker/boot2docker/blob/d465167d83310295b5847ba315905f52c3ca1435/Dockerfile#L426-L435

And this will keep updated to new Docker CE releases.

The boot2docker-cli is gone, but in essence it's just vagrant with virtualbox. Vagrant is still around.

Docker-machine with KVM driver uses boot2docker.iso to provision Docker CE to new libvirt VMs.

Docker Desktop uses distributions built with linuxkit to provision Docker CE to Hyper-V and xhyve.


To picture it all:
infrastructure


So as you can see, all the solutions include Docker Engine (currently called Docker CE for Linux) in one way on another.

There are just too many environments and virtualization/cloud solutions. Consequently there's no one tool that can work equally well on windows/mac/linux and support QEMU/Virtualbox/xhyve/Hyper-v along with different clouds and over-SSH provisioning. And such tool also needs configurability: support different ports, memory/cpu resource management, networking, etc. So probably a general purpose tool along with some configuration file downloaded over http would be the best solution.

@afbjorklund

This comment has been minimized.

Copy link
Contributor

afbjorklund commented Oct 24, 2018

@Vanuan : yes, this what we said above. In order to replace docker-machine, you need to switch to Mac or Windows and Docker Desktop - at least until someone creates something similar with LinuxKit and libvirt...

We don't need to talk about boot2docker-cli anymore, and the support for Linux drivers has already moved to the "machine-drivers" organization - as only VirtualBox is available with the standard docker-machine.

@davidhalter

This comment has been minimized.

Copy link

davidhalter commented Nov 23, 2018

@shin- If you're not allowing new features anymore, please consider adding a very clear note at the top of the README.md AND CONTRIBUTING.md.

It's quite annoying to read both of those files carefully, implementing a driver (several days of work) and not realizing that you guys will never merge any driver anymore. This should be way clearer.

If this is all a misunderstanding and I'm still allowed to pull request my driver, please let us know. It's just that at the moment it's only mentioned in a hidden file that people will see once they create the pull request.

@pietrushnic

This comment has been minimized.

Copy link

pietrushnic commented Dec 31, 2018

There is still no clear info about maintenance mode in README.md and/or CONTRIBUTING.md. I spent half of my holiday time to figure out working solution for ProxmoxVE VM creation and lightweight Linux for Docker deployment - I found combination of docker-machine + docker-machine-driver-proxmox-ve to work pretty good for that use case. Unfortunately it rely on boot2docker, which say it is deprecated in favor of docker-machine and maintainer on some thread suggest Rancher OS. docker-machine going maintenance mode without clearly defining what that means (saying only bug-fixes would be accepted and suggesting that it is fine for new projects is IMO in contradiction). There was also official announcement mentioned in August 2018, but no signs of any reference here.

From outsider perspective, that want to build reasonable infrastructure for SMB, docker-machine doesn't look like correct long term solution. Anyone can suggest what would be Reasonably Good™ for provisioning and managing ProxmoxVE VM as hypervisor and minimal Linux supporting Docker?

@tianon

This comment has been minimized.

Copy link
Member

tianon commented Dec 31, 2018

Unfortunately it rely on boot2docker, which say it is deprecated in favor of docker-machine and maintainer on some thread suggest Rancher OS.

Can you please be more specific to where boot2docker is claiming to be deprecated in favor of docker-machine so I can clarify that appropriately? (because it isn't true unless you're referring very specifically to the ancient boot2docker CLI tool that hasn't been actively maintained in years now)

The boot2docker distribution (specifically, the boot2docker.iso artifact released with every new release of Docker CE) is not going away any time soon that I'm aware of, although it does have a very narrow focus now (and thus new features/functionality are not likely to be considered for merging).

@pietrushnic

This comment has been minimized.

Copy link

pietrushnic commented Jan 1, 2019

@tianon You are right, I'm sorry for confusion. The message on website say boot2docker CLI - at first glance it was not clear to me if there is any difference. I'm pretty sure other users also can be confused, since most likely you will face boot2docker.iso. boot2docker CLI is something you never heard of it is hard to say what is the relation between projects. OTOH boot2docker.iso statement "maintenance mode" is vague in the same way as docker-machine, which I conclude based on this reply.

To sum up confusion:

  1. "maintenance mode" - is not clear in both projects, can I use that for production in small business?
  2. both projects lead developers/maintainers suggest use of other projects that seems to not cover all use previously supported use cases

Ideally would be to have clear statement from @tianon and @shin- if use of docker-machine is fine for production?

@tianon

This comment has been minimized.

Copy link
Member

tianon commented Jan 1, 2019

I can't speak for Docker Machine, but boot2docker has never been a good choice for production; its target is development / personal workstation use.

See also the added notes on https://github.com/boot2docker/boot2docker#readme, where I've tried to clarify both what we mean by maintainance mode and that b2d is not intended nor recommended for production workloads.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.