DEV Community

Jacob Samuel G.
Jacob Samuel G.

Posted on

Docker on Windows or Ubuntu for development?

Hello!

I am trying to decide which operating system to adopt to work with Docker.

I currently use Windows 10, and I know it's weird, but I like the system.
The problem is that I have the "Home" version and it does not allow me to use "Hyper-V".

Now I'm thinking about acquiring Windows 10 Pro (cheap for ebay), but I wonder if it would be worth it or better to do a dual boot and install Ubuntu.

My question is whether Docker works equally well in Windows or has some limitations (such as the linux subsystem in Win10).

I would like to read your experiences.

Update
In case anyone is interested, end up buying Windows 10 Pro. I will update this to tell if it was a good choice or not.

Top comments (17)

Collapse
 
yaser profile image
Yaser Al-Najjar • Edited

I use docker-tools for Windows 8.1 (which you can use in Win10), and I HATE IT !

Reasons

  1. Much slower than t2.micro ubuntu instance on AWS.
  2. It uses VirtualBox (no native way).
  3. NPM runs there in an ugly way, symlink with VirtualBox again.
  4. More NPM issues especially when mounting.
  5. Mounting is really ugly, you need to do some hacking to get it working.

Personal recommendation

Use an online remote setup, sshing to your server and work there and enjoy the best of both worlds... ease of Windows & power of Linux.

Collapse
 
neoclon profile image
Jorge Cervantes

I am active user of windows 10 and Docker,

Recently Docker for windows was release a new feature which allow you run linux containers on windows without needed of create the mobby virtual machine

With this feature you can run both types of containers (windows and linux), thing that you cant do on Docker for linux

This feature was what ended up convencing me

blogs.msdn.microsoft.com/premier_d...

Collapse
 
shanalikhan profile image
Shan Khan

I will recommend using Ubuntu or Linux for Dockers.
It's so much integrated, provides ease and automation easily.

Collapse
 
dance2die profile image
Sung M. Kim

Hi Shan,

Would Ubuntu in particular helping working with docker easier compared to other Linux distros?

Collapse
 
shanalikhan profile image
Shan Khan

Sorry, I have only used in Windows and Ubuntu that's why I can't compare Ubuntu with other Linux distro.
In my personal opinion, using good Linux distro would be more preferred for docker compared with Windows.

Thread Thread
 
dance2die profile image
Sung M. Kim

Ah, I should've been aware of the context of the post.

Thanks for the clarification there Shan 😃

Thread Thread
 
mattisebastian profile image
Matti

Thank you :)

Collapse
 
kunalnanda profile image
Kunal Nanda

For the sake of argument, I would suggest Alpine Linux. A lot of images used for Docker are based on Alpine anyway.

Collapse
 
pkristiancz profile image
Patrik Kristian

I qm also Win 10 user.
Docker on windows have some issues:

  • it falls from time to time (need to restart) mounts are weird:
  • permissions are always something like 755 and it could mess inage building on linux, where you do not have tested it
  • for example you could not mount data folder in Postgress image, it do not go along

If you want to use Win, it can be managable, having Win 10Pro would help.
otherwise i would pick Debian or so, Docker experience will be better for sure.

Collapse
 
tojacob profile image
Jacob Samuel G.

Thanks for sharing your experience!

Collapse
 
detect profile image
ĐΞTΞCT

It mainly depends what apps you would like to run. If you are installing more Linux based software in the containers, Linux is the better choice, whereas if you want to run Windows based apps, Windows is preferred. The reason being that even though the app is containerised the underlying dependencies might require some back and forth between the host and the container.

If you are just getting into Docker, Linux would be a better choice since more things will 'just work'.

I'd suggest the dual boot with Ubuntu option as it's easy to set up docker and has the bonus of being a great development environment to work in.

Collapse
 
ykyuen profile image
Yuen Ying Kit

I will recommend using Docker on Linux as it runs natively on Linux OS. On the other hand, Docker runs on VM thru Hyper-V (Windows) and Hyperkit (MacOS). I used to develop with Docker in my Macbook air using Docker for Mac but i found that the macbook burns whenever i started running docker containers. At the end i switched to Arch Linux and it is much better.

Another alternative is to run a Virtualbox linux VM and run docker on it. It should have less discrepancy with the prod/uat hosting environments which are usually Linux.

Collapse
 
abdel777 profile image
abdellah Frindou • Edited

Thanks for your replay. I just wanna ask, i use also docker on VirtualBox (Ubuntu) but my application (spring boot application with gradle) with the Dockerfile exists on windows. Do you have any idea how can we build an image of it. The problem when using the ./gradlew command to build the task is fuild as doesn't recognize docker command which is not exists on windows. Any ideas ??

Collapse
 
ykyuen profile image
Yuen Ying Kit

i guess u may need to ssh into the ubuntu and execute the build command.

or create a .bat script on windows for the above action such that u could run it on windows directly.

Collapse
 
clebersonfalk profile image
Cleberson Falk • Edited

Go to Linux Mint with Cinnamon, start with 800 MB of ram. It is a distro that you can install everything that would install with Ubuntu, besides everything is beautiful and light. Choosing Mint saves you about 500 MB of ram, the latest version of Ubuntu start using a lot of memory.

Collapse
 
lingam247 profile image
Daniel Selinger

There's a minimal version of Ubuntu now. Without bloat like LibreOffice and such. But it uses Gnome which one has to like (I do :-D).

Collapse
 
aghost7 profile image
Jonathan Boudreau

I can recommend taking a look at the bug tracker on the moby project. Take some time to checkout if there's anything which is a show stopper for you.