I want to have a Linux development environment (Java, Intellij Idea, Clojure and ClojureScript) in my Windows 10 machine (i5, 8GB, 240 GB ssd, 2&1 notebook). I can use:
- a Linux VM (using Hyper-V, VMware Player or Virtual Box), or
- a docker container running desktop apps.
I would like to try the second option. In Docker Containers on the Desktop, the author runs a Chrome browser docker using:
$ docker run -it \
--net host \ # may as well YOLO
--cpuset-cpus 0 \ # control the cpu
--memory 512mb \ # max memory it can use
-v /tmp/.X11-unix:/tmp/.X11-unix \ # mount the X11 socket
-e DISPLAY=unix$DISPLAY \ # pass the display
-v $HOME/Downloads:/root/Downloads \ # optional, but nice
-v $HOME/.config/google-chrome/:/data \ # if you want to save state
--device /dev/snd \ # so we have sound
--name chrome \
jess/chrome
The Dockerfile he used can be adapted to run other desktop apps, but the command above doesn't work in Windows. I have a XWindows server running (in Windows 10), but I would like to know how to change -e DISPLAY=unix$DISPLAY
and --device /dev/snd
options. How can this command be changed to work?
Docker runs in Windows using a Hyper-V Linux VM. Is it going to be faster than a full Linux VM in Hyper-V (or other VM system) or is modularity the only advantage of docker in this case?