Skip to content

Docker migration

We may wish to consider replacing our use of VM with Docker.

Pros of Docker for our use case:

  • Theoretically less RAM intensive than a VM. This is very likely to be the case for Linux users. For Windows and Mac users Docker actually creates a Linux VM inside which it can then add containers. These VM's should, however, still be more lightweight than Virtualbox.

  • Easier to incorporate new changes in the future by just modifying the Dockerfile instead of downloading and reuploading the whole VM.

  • Simplifies automatic notebook testing.

  • If we ever get our own server instead of relying on Colab we would likely have to work with Docker containers anyway. (@Jaehun, is this scenario at all realistic?)

  • Exposes students to an important type of technology that is currently in demand for most Machine Learning Engineer jobs.

Cons of Dockers:

  • High skill floor - setting up a Docker image may not be straightforward. Depending on our experience it may be difficult to help students with debugging issues in the first years of using Docker setup.

  • Some less optimistic articles suggest that changes to Docker may break things and those changes may not necessarily be backwards compatible. I would argue that in our case this would be unlikely to be a problem.

  • We would have to make sure that notebooks/data persists across instantiation of the container.

  • VM approach kind of works in most cases, even if not perfectly.

We therefore have to decide if the transition is needed/worth the effort. And if we decide that Docker is needed, implement it, likely under a separate repository.

Edited by Norman
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information