This is what you get out of the box when you create a container with the provided image/Dockerfile:
- Ubuntu 18.04
- GCC/G++ 7
- Java 8
- Jupyter Notebook
- Conda Python 3.6.x
- Python Data Analysis : Numpy, Pandas, Matplotlib, SciPy, Seaborn, Yellowbrick
- Python Machine Learning : scikit-learn, xgboost, LightGBM, Catboost, mlxtend
- Python NLP : gensim, spaCy
- Python Auto-ML : TPOT, h2o-automl
- Python Hyper-Optimizer : hyperopt, sklearn-deap
- Python Deep Learning : Tensorflow, Keras
- Python interpretability : shap, skope-rules, lime
- Python Genetic Programming : gplearn
- Python Topological Data Analysis (TDA) : KeplerMapper
- h2o plateform : h2o
Install Docker following the installation guide for your platform: here
Available here : (https://hub.docker.com/r/nielsborie/ml-docker/)
docker pull nielsborie/ml-docker
git clone https://github.com/nielsborie/ml-docker.git
cd /ml-docker
docker build . -t ml-docker
docker build . --no-cache --force-rm --build-arg http_proxy=<proxy> --build-arg https_proxy=<proxy> --build-arg no_proxy=localhost,<proxy>,<proxy>,.an.local -t ml-docker
Once we've built the image, we have all the frameworks we need installed in it. We can now spin up one or more containers using this image.
Note:
- This images is based on jupyter-tensorflow docker.
- By default the image automatically launches a jupyter notebook on port 8887 of your localhost.
Simplest command to launch the container.
docker run --name ML-env -p 8887:8888 nielsborie/ml-docker
docker run --name ML-env -d -p 8887:8888 nielsborie/ml-docker
Once you create the container, all you need to do is launch it :
docker start ML-env
docker stop ML-env
Since you launched the container, you can get in and be root inside the image!
docker exec -it ML-env /bin/bash
docker run --name ML-env -d -p 8887:8888 -d nielsborie/ml-docker start-notebook.sh --NotebookApp.password="sha1:b6dba7097c97:7bded30fcbd5089adb3b63496d5e68921e102a5f"
Note:
- default password = admin
docker run --name ML-env -p 8887:8888 -d -v /sharedfolder:/home/jovyan/work/ -e NB_UID=<your-UID> --user root nielsborie/ml-docker start-notebook.sh --NotebookApp.password="sha1:b6dba7097c97:7bded30fcbd5089adb3b63496d5e68921e102a5f"
Parameter | Explanation |
---|---|
-it |
This creates an interactive terminal you can use to iteract with your container |
--name |
This set a name to our container, in our case we use ML-env but you can change it |
-p 8887:8888 |
This exposes the ports inside the container so they can be accessed from the host. The format is -p <host-port>:<container-port> . The default jupyter notebook runs on port 8888 |
-v /sharedfolder:/root/sharedfolder/ |
This shares the folder /sharedfolder on your host machine to /home/jovyan/work/sharedfolder/ inside your container. Any data written to this folder by the container will be persistent. You can modify this to anything of the format -v /local/shared/folder:/shared/folder/in/container/ |
-e NB_UID=<your-UID> --user root |
This fix permission issues under the container, you need to replace with your UID. You can get it with : id -u |
nielsborie/ml-docker |
This the image that you want to run. The format is image:tag . In our case, we use the image ml-docker and tag latest |
start-notebook.sh --NotebookApp.password |
It allows to launch the jupyter with a password already configured to admin |
Jupyter notebook documentation