docker / kitematic

Visual Docker Container Management on Mac & Windows
https://kitematic.com
Apache License 2.0
12.25k stars 1.42k forks source link

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

Open develar opened 9 years ago

develar commented 9 years ago

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

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

dekobon commented 9 years ago

@timfallmk If you had a configuration file with a registered extension, that could act as a "one-click" mechanism for supporting a given provider. Just a thought.

mohamnag commented 9 years ago

+1 here. I would not even restrict the idea to virtual machines, it could be docker on a EC2 host machine.

timfallmk commented 9 years ago

Thanks for the suggestions, I think the ideas are worth considering. Cloud providers will definitely be an option (Digital Ocean will probably be the only one supported in the first release).

robneu commented 9 years ago

:+1: on this. I'm really intrigued by this project but VirtualBox makes it kind of a non-starter for me. 😕

nfarrar commented 9 years ago

Any status on adding support for VMWare Fusion? Kitematic is great and I'd love to start using it full time, but have a hard requirement for Fusion.

ap0phi5 commented 9 years ago

VMWare Fusion here too please!

JasCodes commented 8 years ago

+1

cajurabi commented 8 years ago

+1 VMWare Fusion

felixphew commented 8 years ago

Possibly, you could make Kitematic check if there is already a docker machine called dev, and if so then don't install and set up Virtualbox? It's a bit of a workaround but I think many people would take advantage of it, and it means no changes to the "default" user experience.

Obviously "full" choice of what docker-machine backend to use (remote servers as well as different hypervisors) would be good in the future though.

jdickey commented 8 years ago

Is there anyone from the dev team working on this? Or has The Word come down that it's not glitzy enough?

felixphew commented 8 years ago

@jdickey I think it's in the works, but I wouldn't hold my breath.

timfallmk commented 8 years ago

@jdickey @felixphew . I know it's annoying waiting, but it is actually happening. This project is heavily dependent on https://github.com/docker/machine. Currently the timeline was set back significantly, as the maintainers of that project have chosen to move all extra drivers back to the proposal stage (https://github.com/docker/machine/issues/1626). We're continuing to work on the Kitematic changes that don't require these changes to come through, just at a somewhat diminished pace.

frandevel commented 8 years ago

Yet another VMWare Fusion user here. Would be awesome being able to use your preferred virtualization engine

mattattui commented 8 years ago

:+1: Another plea for a virtualbox-free Kitematic experience :)

mikeroySoft commented 8 years ago

I'm the product owner of VMware Fusion and Workstation, and if there's anything I can do to help please let me know =) mroy at vmware

FrenchBen commented 8 years ago

thanks @mikeroySoft for reaching out - I think a lot of it has to do with getting machine selection integrated into kitematic- There's a wiki-page with some guidelines: https://github.com/kitematic/kitematic/wiki/Machine-Management

I created a small PR for a kitematic cfg/rc - which perhaps maybe an easier route to get vmware fusion up and going? https://github.com/kitematic/kitematic/pull/992

diogoviannaaraujo commented 8 years ago

+1 for vmware integration!

FrenchBen commented 8 years ago

A big thank you to @mikeroySoft for allowing me to work on this fully.

config file setup should be something like .kitematicfg in your user's home directory:

{
    "driver": "vmwarefusion",
    "name": "dockerfuse",
    "memory": "1024",
    "vbinstall": false
}

Description:

If some of you feel like doing a bit of QA on confirming that their vmware fusion VM works with this Kitematic patch, I'd appreciate it: https://github.com/FrenchBen/kitematic/tree/cfg-vm

One option which has been discussed is adding support for the 'none' driver option in docker-machine, allowing the user to specify a Docker-friendly url. Thoughts?

DISCLAIMER: the above github code is provided "as-is" and considered to be for "advanced" users. I'm not responsible for any loss of data, destruction of your VM/laptop/house/relationship/pet/etc.; do praise me however if it worked as expected.

felixphew commented 8 years ago

@FrenchBen This seems to be working OK for me so far - thanks! As for the idea about the "none" driver - good idea, but might it be easier to always specify it as a docker URL (more consistent)?

dekobon commented 8 years ago

@felixphew This is what I've been advocating for a while. If I want to give an experimental or somehow different setup to a newbie to Docker, the easiest path would be to allow them to enter in the DOCKERHOST and other DOCKER* variables.

FrenchBen commented 8 years ago

@felixphew @dekobon Always providing the docker URL creates the assumption that the VM has already been created with proper settings. The docker URL is unknown until the VM is created, which I thought was the original request (use 'xxxx' driver instead of virtualbox)

Furthermore, if just a URL is provided you lose a lot of the nice docker-machine features, such as the ability to ssh in or have it regen the certs, since the docker-machine keys probably weren't added? (not 100% on this as I don't have machines with just URL setup)

dekobon commented 8 years ago

@FrenchBen Making the assumption that the Docker URL was properly created seems very sensible if you are using an abstraction like Joyent's Triton. Essentially they abstract an entire data center as a single docker host thereby allowing you to connect to the Docker URL. Project Bonneville from VMWare will in all likelihood be also taking a similar approach. I've also heard from the Microsoft Docker folks that they plan on using the single host abstraction as well. Also, you can imagine a scenario where in an organization someone has provisioned a very beefy box and they give access to users to provision against it using kitematic.

As for Docker Machine, we've been living in the reality for the last couple of months where all of the pull requests were rejected and that team is in the middle of refactoring to support a driver based model. However, we are still waiting to see what that model will look like. While this all gets sorted out with Docker Machine, it would be nice to have user friendly tools like Kitematic be able to support an "advanced option".

Regarding the ability to ssh in or regenerate the certs - platforms like Triton handle that for you or those patterns just don't apply. For example, you don't need to ssh in because there is no VM host running.

FrenchBen commented 8 years ago

@dekobon Thanks for the feedback- I'll add the docker URL support via the 'none' driver, and 'url' entry in the above JSON, to add the entry to docker-machine and get Kitematic working with it, unless someone here is against this?

Silvanoc commented 8 years ago

+1 for virtualbox-free and remote host support

astewart-twist commented 8 years ago

+1

iby commented 8 years ago

@FrenchBen just have successfully got rid of virtual box and moved to parallels with the latest docker-machine release, but found out that kitematic doesn't play along nicely. Looks like you are the one who's working on this? When do you think kitematic will support all that?

FrenchBen commented 8 years ago

@ianbytchek If you're familiar with compiling Kitematic from source, you can check out the latest PR: https://github.com/kitematic/kitematic/pull/1161 which allows machine selection

iby commented 8 years ago

@FrenchBen npm fails to install contextify, seems there's unresolved issue with that. Judging by the way this is going this soon will be released anyway, will wait.

xyc commented 8 years ago

+1

FrenchBen commented 8 years ago

@ianbytchek What version of Node/NPM are you using? v4.2.1 is what I'm using

iby commented 8 years ago

@FrenchBen 5.0.0 & 3.3.10. This must be related to brianmcd/contextify/issues/188 or one of similar issues.

FrenchBen commented 8 years ago

@ianbytchek very possible. May have to wait for this to be merged.

tiborvass commented 8 years ago

Ping @FrenhBen a LOT of people are asking for this feature at dockercon eu ! I think it shouldn't be too difficult to integrate it with machine. :+1:

FrenchBen commented 8 years ago

@tiborvass Needs a little extra QA and we'll be ready for it :dancer:

badlydrawnrob commented 8 years ago

:+1: For an alternative vmware fusion integration. Currently using Vagrant with Deploybot integration ... so if I can figure out their Atomic deployment with Docker integration, that might lead to a hassle-free process. Anything to save me manually setting up servers!

felixphew commented 8 years ago

@FrenchBen sorry to keep hassling you, but when is this patch likely to make it into a release? If you need any extra testing done, I'm happy to help out.

FrenchBen commented 8 years ago

@felixphew no problem - Monitoring it myself. I'll update this thread when it does!

felixphew commented 8 years ago

Just thought I'd leave this here: https://github.com/docker/kitematic/wiki/Machine-Management

luckydonald commented 8 years ago

I can't use my created machine. Also, the delete vm button does nothing. image

/Applications/Docker/Kitematic (Beta).app/Contents/Resources/resources/docker-machine -D create -d virtualbox --virtualbox-memory 2048 default returned non zero exit code. Stderr: Error creating machine: Machine default already exists You will want to check the provider to make sure the machine and associated resources were properly removed

$ docker-machine ls
NAME      ACTIVE   DRIVER      STATE     URL                      SWARM   DOCKER   ERRORS
default   *        parallels   Running   tcp://10.211.55.8:2376           v1.8.3

Mac OS 10.9.5, Parallels 10.3.0 (29227)

iby commented 8 years ago

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

FrenchBen commented 8 years ago

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.

iby commented 8 years ago

@FrenchBen:

image

jdickey commented 8 years ago

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. :disappointed:

luckydonald commented 8 years ago

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

FrenchBen commented 8 years ago

@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 commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

:+1: 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 commented 8 years ago

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

bt commented 8 years ago

Is there any update or roadmap for this issue?

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