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

Add integration for one or many external Docker hosts (different docker-machine providers) #231

Open
develar opened this Issue Mar 12, 2015 · 113 comments

Comments

Projects
None yet
@develar

develar commented Mar 12, 2015

I cannot use VirtualBox because I don't have enough memory for it — Parallels Desktop is much better and I have configured vagrant box. Parallels/vagrant-parallels#115

So — I just want to open Kinematic and Kinematic should not install VirtualBox/boot2docker — use existing installation (DOCKER_HOST env).

@develar develar changed the title from Don't install VirtualBox by default — use existing installation to Don't install VirtualBox by default — use existing installation of Docker Mar 12, 2015

@ryansch

This comment has been minimized.

ryansch commented Mar 12, 2015

I'd be interested in this to enable our use of vmware fusion.

@proudlygeek

This comment has been minimized.

proudlygeek commented Mar 12, 2015

👍 I really dig this one!

@develar

This comment has been minimized.

develar commented Mar 12, 2015

@ryansch Exactly. Regardless of performance (Vmware is closer, http://www.tekrevue.com/parallels-10-fusion-7-virtualbox-benchmark/), vagrant allows to customize VM more precisely (for example, by default, VirtualBox consumes more than 1GB RAM — vagrant parallels box just restricted to 512 MB and it is enough).

@hadronzoo

This comment has been minimized.

hadronzoo commented Mar 12, 2015

👍

1 similar comment
@caseywebdev

This comment has been minimized.

caseywebdev commented Mar 12, 2015

👍

@tgoeke

This comment has been minimized.

tgoeke commented Mar 12, 2015

I would vote for supporting VMware Fusion with docker machine.

@mainiak

This comment has been minimized.

mainiak commented Mar 12, 2015

👍

@dougborg

This comment has been minimized.

dougborg commented Mar 12, 2015

+1 for the ability to specify a driver for docker-machine!

@dougborg

This comment has been minimized.

dougborg commented Mar 12, 2015

Looks like you can work around this for now by using docker-machine to create and configure a box with whatever driver you like. Just call it dev and it looks like Kitematic will just use that one.

After installing kitematic and starting it up for the first time:

# Kitematic creates a virtualbox vm via docker-machine - this is hard-coded for now.
$ docker-machine ls
NAME           ACTIVE   DRIVER         STATE     URL                          SWARM
dev            *        virtualbox     Running   tcp://192.168.99.100:2376

# close kitematic

# remove the default vm
$ docker-machine rm dev
$ docker-machine ls
NAME           ACTIVE   DRIVER         STATE     URL                          SWARM

# create a new `dev` machine with whatever driver you like:
$ docker-machine create dev -d vmwarefusion
INFO[0000] Creating SSH key...
INFO[0000] Creating VM...
INFO[0000] Starting dev...
INFO[0000] Waiting for VM to come online...
INFO[0042] "dev" has been created and is now the active machine.
INFO[0042] To point your Docker client at it, run this in your shell: $(docker-machine env dev)
$ docker-machine ls
NAME   ACTIVE   DRIVER         STATE     URL                          SWARM
dev    *        vmwarefusion   Running   tcp://192.168.133.132:2376

# start Kitematic - it will say it is "Starting Docker VM",
# but it is really just using the one you created:

$ docker-machine ls
NAME   ACTIVE   DRIVER         STATE     URL                          SWARM
dev    *        vmwarefusion   Running   tcp://192.168.133.132:2376 

You can now start containers, etc using the Kitematic UI and they will use the dev vm you created manually.

So far the only thing I have found that doesn't work is using the Kismatic UI to browse/edit files you have mounted as volumes in the container. They must be setting that up using a mount from the virtualbox vm created with vbox commands, or something along those lines. That is one limitation for the work-around and something else that will have to be implemented for each driver or in a more generic way.

@tgoeke

This comment has been minimized.

tgoeke commented Mar 12, 2015

Using the manual method is fine - except I don't want to install VirtualBox at all, it messes with networks etc, so it would be nice to be able to skip the VB install.

@dougborg

This comment has been minimized.

dougborg commented Mar 12, 2015

Yep. Good point. I tried uninstalling VirtualBox, but Kitematic installed it again the next time it started up.

@sammcj

This comment has been minimized.

sammcj commented Mar 12, 2015

Just went to try it and saw it started downloading Virtualbox without even prompting - had to quickly kill it off.

I already have boot2docker and docker machine setup with VMware Fusion which is a lot faster and more reliable than Virtualbox - it would be nice if Kitematic recognised this.

@jmorganca jmorganca added the feature label Mar 13, 2015

@jmorganca jmorganca changed the title from Don't install VirtualBox by default — use existing installation of Docker to Add integration for different docker-machine providers Mar 13, 2015

@jmorganca

This comment has been minimized.

Contributor

jmorganca commented Mar 13, 2015

Hi all. Thanks for creating this issue!

The good news is that we use docker-machine under the hood, which is quickly adding support for different providers such as VMware fusion etc.

I'll mark this as a feature for adding different providers, but also understanding that it's inconvenient to automatically install VirtualBox if that's not what's expected.

@jmorganca jmorganca changed the title from Add integration for different docker-machine providers to Add integration for other Docker hosts (different docker-machine providers) Mar 14, 2015

@jmorganca jmorganca changed the title from Add integration for other Docker hosts (different docker-machine providers) to Add integration for external Docker hosts (different docker-machine providers) Mar 14, 2015

@dougborg

This comment has been minimized.

dougborg commented Mar 17, 2015

Just to follow up on my earlier comment, it looks like the host volume support is provided by docker machine host drivers and host volume mounting is not yet supported by the vmwarefusion driver: docker/machine#641.

@rickard-von-essen

This comment has been minimized.

rickard-von-essen commented Mar 17, 2015

@dougborg Is host volume mounting required to get kitematic to work? I wrote the Parallels Desktop driver and is eager to add support for it in kitematic but it currently lacks host volume mounting because of legal issues with the drivers.

Is there any work done on abstracting out the "driver" layer?

@develar

This comment has been minimized.

develar commented Mar 17, 2015

@rickard-von-essen I don't get your note about parallels. Host volumes works perfectly – specified in my vagrant file (config.vm.synced_folder "/Users/develar", "/Users/develar").

@rickard-von-essen

This comment has been minimized.

rickard-von-essen commented Mar 17, 2015

@develar But not in docker-machine + boot2docker.iso since it requires that boot2docker.iso to include Parallels Tools which is currently not supported by the EULA see 1.7. Parallels Tool on http://www.parallels.com/about/legal/eula/ .

@jmorganca jmorganca changed the title from Add integration for external Docker hosts (different docker-machine providers) to Add integration for one or many external Docker hosts (different docker-machine providers) Mar 18, 2015

@dougborg

This comment has been minimized.

dougborg commented Mar 18, 2015

@rickard-von-essen: I think host volume support is important in the context of this user story / feature: adding support for other docker-machine providers. While I am sure there are some situations where mounting volumes from the OSX host is not needed, I find it is necessary in most of the work I do with Docker. Kitematic already has a nice interface built up around mounting and viewing contents of host volumes and I think it would be a shame for those features to be unavailable if you use another provider. If you provide support for other providers without the host volume mounting feature, I suspect it would confuse users.

@jamroks

This comment has been minimized.

jamroks commented Mar 30, 2015

   + 1 on this one !!!  On Mac Os x nothing compare to vmware Fusion when using virtualization : 
  • Speed
  • Relability
  • Rock Solid Feature
  • etc

It used to be only Virtual Box around me, But nowadays i see a lot of people now swithing to Fusion for all the reason mention above . It's a growing user base of Fusion on Mac OS happening . And Yes please Host Volume support is a must for any productive workflow between Host-VM-Docker

@ghost

This comment has been minimized.

ghost commented Apr 21, 2015

Please add this!

@ianbytchek

This comment has been minimized.

ianbytchek commented Dec 23, 2015

Yep, same thing with Parallels. Thought that was supposed to be working in the latest release?

@FrenchBen

This comment has been minimized.

Contributor

FrenchBen commented Dec 23, 2015

Unfortunately it isn't - There was some early work done to support those, but the 'default' VM still is expected to be a Virtualbox driver and why you're seeing the error.

@ianbytchek

This comment has been minimized.

ianbytchek commented Dec 23, 2015

@jdickey

This comment has been minimized.

jdickey commented Dec 24, 2015

Agreed with @ianbytchek. My boss hears me raving about Docker, but absent Kitematic working with our existing VMware installation (that we're otherwise committed to), there are still too many shiny knobs and sharp edges for me to be comfortable having him set anything up by himself. Ditto for any future new hires. 😞

@luckydonald

This comment has been minimized.

luckydonald commented Dec 24, 2015

Is there a particular reason for that check of the driver?

@FrenchBen

This comment has been minimized.

Contributor

FrenchBen commented Dec 28, 2015

@jdickey Sorry to hear this being a pain point. It's not easy to please all 'setup', but feel free to comment in the wiki on the machine work.
@luckydonald We rely on vbox for a proper VM setup and have it integrated for retries, reset, etc. Allowing more drivers becomes a pretty big task during the initial setup.

@luckydonald

This comment has been minimized.

luckydonald commented Dec 28, 2015

Heh. Even VMware doesn't really works, I got problems on my windows machine all the time, something like 'could not get ip'. But that probably is another issue.

@jameswilson

This comment has been minimized.

jameswilson commented Jan 22, 2016

Also interested in this. I tried installing Toolkit, run Kitematic for first time, it creates the VirtualBox default VM. Then tried removing the default with docker-machine rm default, and replacing it with one using the Parallels driver with docker-machine create --driver=parallels default. When I go to restart Kitematic, it completely replaces my Parallels VM with a new VirtualBox one!

@unlucio

This comment has been minimized.

unlucio commented Jan 24, 2016

👍
I use as well simply my general linux vm on vmware (so no vbox nor docker-machine) and I'd love to be able to have kitematic attching to that :)

@joshuajeeson

This comment has been minimized.

joshuajeeson commented Jan 27, 2016

+1 to be able to remotely control a docker engine installed on VM's, with Kinematic installed locally on my desktop machine.

@bt

This comment has been minimized.

bt commented Feb 5, 2016

Is there any update or roadmap for this issue?

Maybe some of us can contribute to the efforts as well?

@FrenchBen

This comment has been minimized.

Contributor

FrenchBen commented Feb 5, 2016

@bt there's a bit of info in the wiki under machine management. A lot of the code needs to be updated, but it'll give you an idea of general direction

@gsingla294

This comment has been minimized.

gsingla294 commented Feb 23, 2016

I don't want to use Virtual box. Instead, I have my docker daemon installed on one of the VMs in Data center.
can I connect that daemon using Kitematic using IP of the VM? so that I can manage my docker deamon using Kitematic UI.

@mrkeuz

This comment has been minimized.

mrkeuz commented Mar 3, 2016

👍

@kastork

This comment has been minimized.

kastork commented Apr 25, 2016

+1

For me it would be enough to simply have the ability to tell Kitematic which docker-machine of mine to use. The local stuff on a VM is nice, but I use docker-machine to create multiple environments on multiple clouds as well as locally. I don't need or even, necessarily, want Kitematic to manage the construction of machines locally or remotely (docker-machine command line is perfectly adequate for that), I just want to use it to manage containers in whatever machine I need to work with since it has a nice interface for environments, ports and so forth.

@kane-c

This comment has been minimized.

kane-c commented Aug 15, 2016

I figured out a basic workaround to use this without VirtualBox if anyone is interested.
https://github.com/kane-c/kitemagic

I'm using it now with Parallels and Dinghy.

@FrenchBen

This comment has been minimized.

Contributor

FrenchBen commented Aug 22, 2016

@kane-c I appreciate the quick hack, but it would be much nicer to have a proper solution implemented. Do you think you could create a PR that does something similar?

@luckydonald

This comment has been minimized.

luckydonald commented Aug 23, 2016

For reverence, @kane-c's script is currently 59eae3

@yuba

This comment has been minimized.

yuba commented Oct 19, 2016

+1

@chrisandchris

This comment has been minimized.

chrisandchris commented May 26, 2017

+1 for adding other machine vm providers

@stormbeta

This comment has been minimized.

stormbeta commented Jun 12, 2017

This makes it pretty difficult to recommend Kitematic right now. Putting support for creating machines with other drivers on the back-burner makes sense, but the inability to even select an pre-existing machine config, especially when Kitematic already uses docker-machine, is frustrating.

Almost every other tool related to docker I've seen allows you to define the docker config yourself, or pick from a list of visible docker-machines.

@jdickey

This comment has been minimized.

jdickey commented Jun 16, 2017

@stormbeta The only logical conclusion seems to be that Kitematic is being deprecated with plausible deniability; after all, it still works if you saddle yourself with VirtualBox, but it won't work even with Docker's bundled hypervisor (xhyve). As you note, it's now simply unethical to recommend anyone even try Kitematic, and that stance is likely to spread to Docker tools as a whole without expedited vendor action.

Translation: Docker, if you're trying to encourage people to sign up for paid support/etc contracts, you're proceeding along a highly implausible path.

@hellonearthis

This comment has been minimized.

hellonearthis commented Jun 16, 2017

I would like to see and will try and see if the config and other settings can be exposed in Kitematic as it is a very useful feature. It is open source so you can do it yourself and if you don't like kitematic then just use the Docker.exe

@luckydonald

This comment has been minimized.

luckydonald commented Jun 20, 2017

As the problem is not that it doesn't work with other machines.

Like @kane-c's comment shows, it is possible with non virtual box VM's.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment