Live data from Hacker News

Docker for Mac and Windows Beta

blog.docker.com

231–240 of 250 posts

Re: Docker for Mac and Windows Beta

#231
post #202

Earlier quoted context omitted.

I've had similar experiences as well as times where xhyve made it so my laptop could not come out of sleep. xhyve is wonderful but still needs some work and it seems like the main dev isn't interested in continuing work on it at this point[1]. Hopefully Docker's usage will spur more work on xhyve. [1] Last commit on xhyve is December 28th, 2015 https://github.com/mist64/xhyve/commits/master

We've had to fork xhyve very heavily for Docker to embed it, and are making many changes in a very rapid loop as we improve d4mac. We're still debating whether to contribute back into xhyve or just make it a separate open-source project with its own pace and design tradeoffs. Either way we are impatient to open-source it.

I'd hope some of your improvements make it back to xhyve

Re: Docker for Mac and Windows Beta

#232
post #212

Earlier quoted context omitted.

Is it related to the work started by Brad Fitzpatrick a few months ago with the goal of implementing client-server gateway between the host and the guest filesystem using FUSE?

The new daemon (dubbed osxfs) is FUSE-based at the moment, but also provides a semantic translation layer between OSX filesystem calls and Linux kernel events. The FUSE layer can be removed in the future in favour of a direct kernel module with this architecture, if it ends up being a bottleneck (its fine right now though)

Do you use a custom protocol between the daemon running in OSX and the one running in the container?

Is there some kind of caching? If yes, what is the impact on tools like make when checking atime or mtime? If no, is there a perceptible impact on latency, for example when compiling a large project in the container?

Re: Docker for Mac and Windows Beta

#233
post #18
post #3

If I had a yearly quota on HN for upvotes, I'd use all of them on this. > Volume mounting for your code and data: volume data access works correctly, including file change notifications (on Mac inotify now works seamlessly inside containers for volume mounted directories). This enables edit/test cycles for “in container” development. This (filesystem notifications) was one of the major drawbacks for using Docker on M…

We'd love to get your feedback on the new filesystem engine in the Docker for Mac app. It's been a ton of work to get right, and there a few corner cases in the current beta that we're squashing, but overall things "just work" for my day-to-day Linux development on my Mac using the current beta. At this stage, pointing it to the weirdest and most wonderful filesystem stressers you can find is welcome. We'll leap on a…

What is the performance of this new filesystem engine, compared to VirtualBox shared folders, which are well-known to be slow?

Re: Docker for Mac and Windows Beta

#234
post #35
post #26

Earlier quoted context omitted.

Nix is more difficult. With Docker, you don't need to learn much new stuff, since images are created from sequences of ordinary shell commands running on familiar distributions. Nix requires you to familiarize yourself with a new package manager and its somewhat arcane definition language. And then also the specific Nix tools for working with npm, ghc, or whatever you want to use. So the experience is very different.

In this case you could still pick homebrew as your package manager of choice. It works pretty well, is available cross platform ( https://github.com/Linuxbrew/linuxbrew ) and is far more simple than docker. You just have write a short shell script which installs all the dependencies via brew when not installed already (much like you'd do in a Dockerfile).

How does this solve the dev-prod parity issue (using the same versions of dependencies, etc.)?

Re: Docker for Mac and Windows Beta

#235
post #166

Earlier quoted context omitted.

Nix can provision containers, VMs, bare metal. It is much more capable than Docker because it composes , and doesn't use opaque disk images as the basis for everything. Nix provides much better reproducibility.

Ditto with Guix. Reproducible builds FTW.

I'd like to have an equivalent of `guix environment` in Brew.

Re: Docker for Mac and Windows Beta

#237
post #8
post #4

> Faster and more reliable: no more VirtualBox! I'm a Docker n00b, still don't know what it can do exactly. Can Docker replace Virtualbox? I guess only for Linux apps, and suppose it won't provide a GUI, won't run Windows to use Photoshop?!

Let me explain Docker for Mac in a little more detail [I work on this project at Docker]. Previously in order to run Linux containers on a Mac, you needed to install VirtualBox and have an embedded Linux virtual machine that would run the Docker containers from the Mac CLI. There would be a network endpoint on your Mac that pointed at the Linux VM, and the two worlds are quite separate. Docker for Mac is a native Mac…

"Most of the processes do not need root access" - To create the VM network interfaces the vmnet_start_interface() in pci_virtio_net_vmnet.c function needs elevated privileges... how have you managed to get around not having to run xhyve as root just to have a virtual Nic?

Re: Docker for Mac and Windows Beta

#238

Does anybody have any guides on setting up dev environments for code within Docker? I recall a Dockercon talk last year from Lyft about spinning up microservices locally using Docker. We're using Vagrant for development environments, and as the number of microservices grows - the feasibility of running the production stack locally decreases. I'd be interested in learning how to spin up five to ten docker services loc…

I use docker, specifically docker-compose to do just that. So far it's 7 containers spread across 5 code bases all brought up with one command, `docker-compose up`. The django quickstart guide is a good starting point for wrapping your head around it, https://docs.docker.com/compose/django/

Could you share something about how you compose containers from different code bases? This has always felt hacky to me, but maybe I'm doing it wrong.

Re: Docker for Mac and Windows Beta

#239
post #18
post #3

If I had a yearly quota on HN for upvotes, I'd use all of them on this. > Volume mounting for your code and data: volume data access works correctly, including file change notifications (on Mac inotify now works seamlessly inside containers for volume mounted directories). This enables edit/test cycles for “in container” development. This (filesystem notifications) was one of the major drawbacks for using Docker on M…

We'd love to get your feedback on the new filesystem engine in the Docker for Mac app. It's been a ton of work to get right, and there a few corner cases in the current beta that we're squashing, but overall things "just work" for my day-to-day Linux development on my Mac using the current beta. At this stage, pointing it to the weirdest and most wonderful filesystem stressers you can find is welcome. We'll leap on a…

I've been running Docker on Hyper-V since the start (VBox never worked for me as I had a requirement on Hyper-V) - can you provide a little more info on how unikernel experience was used to make a difference? Is this a custom compiled linux kernel with Alpine distro on top? How would volume mounts compare to something like using the netshare (cifs) with a samba share from the windows host? (which is what I'm currently using)?

Re: Docker for Mac and Windows Beta

#240

So, let's say if I am developing a Java EE app under windows with eclipse and want to use docker container for my app, how do I go about it?

https://github.com/mgreau/docker4dev-tennistour-app is a good example of using Java EE 7 / Angular application to show how to use Docker for Java Development Arun Gupta wrote many excellent posts on how to use Docker to build Java apps: http://blog.arungupta.me/docker-tooling-eclipse-video/ on Eclipse tooling for Docker, http://blog.arungupta.me/deploy-wildfly-docker-eclipse/using Wildfly https://github.com/chanezon/…

Thank you for the references!
Post reply on HN