Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Documentation

Concepts

Virtual Environments

myDocker provides its users with a variety of virtual environments (or simply environments), provided on demand; each of these virtual environments consists of a set of resources:

When the user requests an environment:

  1. a server is identified to host the environment

  2. the docker image containing the environment’s software is downloaded to this server (if it is not already present);

  3. a lightweight virtual machine (#docker container) is launched on the server;

  4. if applicable, the user’s home directory is mounted in the virtual machine;

  5. the user interface is started in the virtual machine and made available to the user, typically via a new web page.

Requesting an environment

To request an environment, the user can choose to:

Persistent personal folders

In most virtual environments, the user has a folder to host personal documents. This folder is persistent: the user will find these documents there after shutting down and then restarting the environment. Depending on the environment, this personal folder may be dedicated to the environment or shared with other environments (global).

To allow for a wide range of uses, there is currently no imposed quota. However, this personal folder is designed for interactive use and not for long-term file storage. Therefore, there are no guarantees of backup or long-term preservation (several years).

We rely on your cooperation to allow us to maintain a liberal data policy. We reserve the right to intervene without notice to, for example, clean up easily reconstructible temporary files (typically pip cache, conda, ...) or illegal content. Or with notice for other large files.

Roles: student, teacher, administrator

myDocker does not differentiate between users when using virtual environments: once inside one of them, you are on a generic Linux machine with a local account, similar to a computer lab setting.

The “Teacher” role further allows the user to define and provide new images and environments via a dedicated tab on the myDocker dashboard. A user can have the Teacher role because the institution through which they authenticated indicated that they are staff and not a student, or because an administrator granted them the Teacher role.

On the interface, it is possible to switch from “Student” mode (environment user) to “Teacher” mode (environment creator) using the button at the top right, next to the interface exit.

to the administrator interface

(a)to the administrator interface

to the student interface

(b)to the student interface

Finally, the “Administrator” role allows for the management of users (specifically for configuring their roles).

How to organize a course using myDocker

If one of the preexisting environments suits you, you can simply tell your students to use it, for example by providing them with a link to the environment.

If usage is extensive (for example, more than a hundred students using myDocker simultaneously), please contact us; we will then try to keep a closer eye on the service, especially during the first sessions. This will also allow for better planning of any potential service interruptions outside of critical periods (e.g., project deadlines). Please also contact us if you require significant physical resources (e.g., GPU, large volumes of data).

If you have specific needs (for example, a particular software or software version), you can create and share your own environment.

Alternatively, most existing environments use a package system such as pip or conda. It is therefore possible to install new software directly from the environment. They will typically be installed in a /conda folder where the user has write permissions. Note, however, that this installation is not persistent (unless explicitly installed in the user folder): the software will need to be reinstalled every time the environment is restarted. This alternative is therefore best reserved for small software that is quick to download and install.

Finally, we suggest several strategies below for providing educational resources to students.

How to provide resources (educational)

Option 1: Manual import

The technically simplest method, although not the most practical for students, is to make the resources available to students in their VLE (Moodle, ...)

educational resources or archives (using jupyterlab-archive) manually

Option 2: Import from a git repository

Option 3: Under Jupyter, with nbgitpuller

Option 4: With Travo

Assignment Management

How to organize assignment submissions:

Providing data (coming soon)

Real-time collaboration (coming soon)

At this stage, mydocker (like JupyterHub@Paris-Saclay previously) does not provide collaboration functionality in itself. This is a well-identified limitation!

That being said: for JupyterLab-based environments, it is possible to configure the environment to launch JupyterLab in collaborative mode. In this case, the user can share an invitation link so that other people can join their session, with collaborative editing as in Google Colab.

https://jupyterlab-realtime-collaboration.readthedocs.io/en/latest/ https://github.com/jupyterlab-contrib/jupyterlab-link-share

The limitations are:

We would like to move forward on this subject and would be very interested in supporting you if you are willing to beta test. A first example of an environment using collaboration contains a LaTeX installation for collaborative editing and real-time rendering.

Additionally, you might be interested in the assignment management tool (preparation, distribution, tracking, collection) Travo, based on GitLab, which has some simple asynchronous collaboration features.

References