Docker Community Forums

Share and learn in the Docker community.

Need guidance - not sure if understanding usage of Docker correctly

I am trying to solve a problem in that every time Apple updates OS X (now just MacOS), my tool chain gets pretty much destroyed and I have to rebuild it. I’m wondering about just throwing all my tools in a VM or a Docker container and hopefully avoiding breaking changes that Apple makes. I just don’t fully understand Docker and am not sure if it would do what I want. I don’t really like full fledged VMs because they run a whole separate operating system. I used to run Windows like that and the resource usage was awful. I just want to keep my stuff separate from Apple’s stuff, and I need some way of maintaining system settings so my stuff can find its libraries and so on. Is this what Docker does? Can I put libraries and a compiler in a container? Can I put CUDA stuff in a container and just install the driver in the main system or something? And, once this stuff is in a container, will it be safe from Apple-driven updates? (I put a lot of effort into setting up a few of the Opens [OpenMP, OpenMPI, etc.] on my system and just one update from Apple broke it all so I’ve been really anxious about that ever since)

Basic question: Docker or full-fledged VM in this case? (or is Docker a full-fledged VM?)

I’m not in IT so my knowledge here is really newbish and reading the webpages is helpful but…I think the problem is my questions are super basic and the documentation assumes I already know that basic stuff. Maybe if there’s a Docker For Dummies link, that might really help me lol. I feel so clueless right now that I don’t even know what help I need. I could start here, but there’s nothing for Mac: http://training.docker.com/category/self-paced-online

If you can get your dev toolchain working under Linux, then Docker would be a great tool to avoid that kind of problem. However, Docker on the Mac runs in a bare-bones Linux VM, so if this is a native Mac toolchain you’re working in, it won’t work.