Docker - TobiasSchmidtDE/DeepL-MedicalImaging GitHub Wiki

Docker Image

The docker image is a modified version of the tensorflow/tensorflow-latest-gpy-py3image (tensorflow).

The image was modified in order to fix the CUDNN (7.6.4.38-1) version according to the installed CUDA version (10.1).

Running the docker container

  1. Install Docker along with nvidia-docker

  2. Change to the root directory of the idp-radio-1 repository

  3. Build the image using the Dockerfile docker build --tag idp-radio-1 . Note: This step only has to be done once or if the dockerfile has changed.

  4. Start and run commands in the Docker container:

docker run -d -v $PWD:/srv/idp-radio-1 --name radio --gpus all idp-radio
  • -d runs the container in detached mode
  • -v mounts the src folder into the docker container
  • --name radio sets the name of the container to radio
  • --gpus all enables all GPUs
  • The working directory inside the container is /srv/idp-radio-1
  1. To access Jupyter Lab/Notebook or Tensorboard you need to get the public url for the ngrok tunnel. The most comfortable way to get this is to look at the logs of the docker container using:
docker logs radio

There you will find an entry from where you can copy & paste the public url for the service you'd like to access. The entry is generated every 5 minutes and should look like this:

Retrieving open ngrok tunnels...
URLs open for the following services: [('jupyterlab', 'http://abcde12345.ngrok.io'), ('tensorboard', 'http://abcde12345.ngrok.io'), ('jupyternotebook', 'http://abcde12345.ngrok.io')]
  1. To start an interative bash to run commands in the container use:
docker exec -it radio /bin/bash

Known Issues

The -u command does not bind the current user correctly, currently the container is started by a no name-user. However since this non-existing user does not have any root privileges this does not cause any problems.