π· CI | π Release | π€ Stable | π§ͺ Snapshot |
---|---|---|---|
The network-graphs-environment is a ready-to-run Docker image containing the python library networkit and other things.
NetworKit is a growing open-source toolkit for high-performance network analysis. Its aim is to provide tools for the analysis of large networks in the size range from thousands to billions of edges. For this purpose, it implements efficient graph algorithms, many of them parallel to utilize multicore architectures. These are meant to compute standard measures of network analysis, such as degree sequences, clustering coefficients and centrality. In this respect, NetworKit is comparable to packages such as NetworkX, albeit with a focus on parallelism and scalability. NetworKit is also a testbed for algorithm engineering and contains novel algorithms from recently published research.
More info at Networkit documentation.
igraph is a collection of network analysis tools with the emphasis on efficiency, portability and ease of use. igraph is open source and free. igraph can be programmed in R, Python and C/C++.
More info at igraph documentation.
This is what you get out of the box when you create a container with the provided image/Dockerfile:
- Ubuntu 18.04
- Jupyter Notebook
- Conda Python 3.6.x
- GCC/G++ 5
- Python Machine Learning : Numpy, Pandas, Matplotlib, SciPy, Seaborn,scikit-learn
- Python graph libraries : NetworkX, Networkit, python-igraph
- Python Deep Learning : Tensorflow, Keras
Install Docker following the installation guide for your platform: here
Available here : (https://hub.docker.com/r/nielsborie/network-graphs-environment/)
docker pull nielsborie/network-graphs-environment
git clone https://github.com/nielsborie/network-graphs-environment.git
cd /network-graphs-environment
docker build . -t network-graphs-environment
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 network-graphs-environment
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 network-graphs-env -p 8887:8888 nielsborie/network-graphs-environment
docker run --name network-graphs-env -d -p 8887:8888 nielsborie/network-graphs-environment
Once you create the container, all you need to do is launch it :
docker start network-graphs-env
docker stop network-graphs-env
Since you launched the container, you can get in and be root inside the image!
docker exec -it network-graphs-env /bin/bash
docker run --name network-graphs-env -d -p 8887:8888 -d nielsborie/network-graphs-environment start-notebook.sh --NotebookApp.password="sha1:ff6a3551e13f:c3edadaa0cb4bed02293c96c14d755611069a4ba"
Note:
- default password = bleckwen
docker run --name network-graphs-env -p 8887:8888 -d -v /sharedfolder:/home/jovyan/work/ -e NB_UID=<your-UID/> --user root nielsborie/network-graphs-environment start-notebook.sh --NotebookApp.password="sha1:ff6a3551e13f:c3edadaa0cb4bed02293c96c14d755611069a4ba"
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 network-graphs-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/network-graphs-environment |
This the image that you want to run. The format is image:tag . In our case, we use the image network-graphs-environment and tag latest |
start-notebook.sh --NotebookApp.password |
It allows to launch the jupyter with a password already configured to bleckwen |
Jupyter notebook documentation