ContainDS is a simple user interface allowing you to easily run Jupyter Lab or Notebooks through virtual environments on your computer. It uses Docker to run these environments but you don’t need to learn or use any Docker commands at all.

To start a new environment you only need to choose a starting point for your environment (e.g. a Binder-ready git repo; or standard Jupyter images such as ‘minimal’, Tensorflow, R, scipy) and a workspace – a folder on your hard drive for storing Jupyter notebook files and other data.

If you install more Python or other packages into your environment you can clone the environment as an ‘image’ to be reused for other projects or shared with colleagues. This is like having a pre-built Conda environment to be reused whenever and wherever it is needed.

Since environments used by ContainDS can run Linux, it can often be easier to build and maintain these isolated virtual environments than building and installing packages natively in Windows or MacOS.


ContainDS acts as a user interface on top of Docker running on your local computer. It allows you to create new isolated containers (virtual machines) running Jupyter.

When you create and start a new container through ContainDS, you simply select:

  • a starting ‘image’ (pre-built Jupyter environment, containing libraries such as Tensorflow or scipy); or provide the URL to a Binder-ready Git repo
  • a workspace, which is simply a folder on your local hard disk where you would like to store ipynb notebooks and other data for your project (this can already contain some files, e.g. from a git repo); or select to have an integrated workspace

In ContainDS, a container is simply an environment/workspace pair. You can give this pair a name to remind you of its purpose in your work.

Once your new container is running, you can click the WEB button to launch the corresponding Jupyter Lab in your default web browser.

Documentation Table of Contents


Getting Started – including installation and running your first environment

Run Container via Binder – start a new container by providing simply the URL of a GitHub repo

How-To Guides

Managing Containers – how to stop, start, and delete containers.

Cloning the Environment – how to save the container’s environment so it can be reused in the future


Jupyter Lifecycle – how Jupyter Lab or Notebook runs inside a container


New Container Options – configuration available when choosing to start a new container

Preferences screen

Frequently Asked Questions

FAQs page

Contact Us

If you run into any problems at all, or have any feedback, please get in touch with us.