Generic Dockerfile template
Finally to give a comprehensive answer, note that a good practice regarding Python dependencies consists in specifying them in a declarative way in a dedicated text file (in alphabetical order, to ease review and update) so that for your example, you may want to write the following file:
requirements.txt
matplotlib
med2image
nibabel
pillow
pydicom
and use the following generic Dockerfile
FROM python:3
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir --upgrade pip
&& pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "./your-daemon-or-script.py"]
# install python
docker pull python
# run python in interactive mode with no persistent storage
docker run -it python
# run python in interactive mode and mount an absolute path
# to a folder named shared in the python container for persistent storage
docker run -it -v /Users/codecaine/Desktop:/shared python
# run python in interactive mode and mount the terminal current working directory
# to a folder named shared in the python container for persistent storage
docker run -it -v ${PWD}:/shared python
# create a volume named shared
volume to create my_volume
# get a list of volumes on system
docker volume ls
# to attach a volume for persistent storage in python
docker run -it -v my_volume:/shared python
# in python check the folder
import os
# change system directory to shared folder
os.chdir("shared")
# list files in the current directory
os.listdir(".")
# stop all active services - containers and mounted volumes
docker system prune
# remove a volume is storage is not needed anymore
docker volume rm my_volume
# getting a copy of ubuntu for docker
pull ubuntu
# run ubuntu image in interactive mode
docker run -it ubuntu
# run ubuntu image in interactive mode while mounting the terminal
# current working directory to ubuntu home folder
docker run -v ${PWD}:/home -it ubuntu
# run ubuntu image in interactive mode while mounting the terminal
# mounting an absolute path on my computer directory to ubuntu home folder
docker run -v /Users/codecaine/Desktop:/home -it ubuntu
# run ubuntu image in interactive mode while mounting the terminal
# mounting an absolute path on my computer directory to ubuntu home/data
# directory
docker run -v /Users/codecaine/Desktop:/home/data -it ubuntu
# run these two commands to be able to install packages with apt-get
apt-get -y update
apt-get -y curl
# installing python and nodejs with apt-get
apt-get -y python3.10
apt-get -y install nodejs