ViSUS Docker Deployment
Contents
Quick start
Start your Docker and login into your account. If you don't have installed follow these instructions: Docker Documentation
To log in from your terminal:
docker login Username: your_username Password: XXXX
Now pull the ViSUS image:
docker pull visus/visus
This image contains:
- the ViSUS Server
- configuration files (see ViSUS configuration file)
- a simple 2D web viewer
- some tools to convert data (see [[ViSUS Convert]).
Run the image:
docker run -it --rm -p 8080:80 visus/visus
Check if the server is running:
curl -v "http://localhost:8080/mod_visus?action=list"
You will get a list of the current datasets on the server.
Content of the image
This image contains some folders that contains configuration and utilities. Those folder are under /home/visus
The user can map those folders locally to edit ...
Web Viewer
You can preview and navigate you data on the server using the webviewer using your browser at the URL: http://localhost:8080
Here is a picture of the viewer:
With the commands on the bottom bar you can:
- change server
- set a slice (if using a 3D dataset)
- set a timestep
- set palettes and min-max range
- choose a field of the selected dataset
Example of using precompiled mod_visus
Create 'server.config' file (replace 2kbit1 with your dataset name):
cat <<EOF > server.config <?xml version="1.0" ?> <visus> <dataset name='2kbit1' url='file:///home/visus/dataset/2kbit1/visus.idx' permissions='public'/> </visus> EOF
Create Dockerfile:
cat <<EOF > Dockerfile FROM visus/mod_visus COPY server.config /home/visus/server.config EOF
Build mod_visus docker image:
docker build -t visus/my-server .
Run the image mounting a host volume:
docker run -it --rm -p 8080:80 --volume="c:/visus_dataset/2kbit1:/home/visus/dataset/2kbit1" visus/my-server
Test if it works:
wget "http://localhost:8080/mod_visus?action=readdataset&dataset=2kbit1"
Example of creating a test david_subsampled server
Create 'server.config' file:
cat <<EOF > server.config <?xml version="1.0" ?> <visus> <dataset name='david_subsampled' url='file:///home/visus/dataset/david_subsampled/visus.idx' permissions='public'/> </visus> EOF
Create Dockerfile:
cat <<EOF > Dockerfile FROM visus/mod_visus COPY server.config /home/visus/server.config RUN set -x \ && apt update \ && apt install -y curl \ && cd /home/visus/dataset \ && curl http://atlantis.sci.utah.edu/download/david_subsampled.tar.gz -o temp.tar.gz \ && tar xvzf temp.tar.gz \ && rm -f temp.tar.gz \ && chown -R www-data /home/visus/dataset \ && chmod -R a+rX /home/visus/dataset EOF
Build mod_visus docker image:
docker build -t visus/david_subsampled .
Run the image mounting a host volume:
docker run -it --rm -p 8080:80 visus/david_subsampled
Test if it works:
wget "http://localhost:8080/mod_visus?action=readdataset&dataset=david_subsampled"
Some tricks
To debug mod_visus (example: to check Apache log files):
docker run -ti -p 8080:80 --entrypoint=/bin/bash visus/mod_visus -s /usr/local/bin/httpd-foreground.sh
To run an interactive 'clean' ubuntu (or whatever):
docker run -ti -p 8080:80 --entrypoint=/bin/bash ubuntu:16.04 -s
If you want to remove all old docker images and containers (and you know what you are doing!)
docker rm -f $(docker ps -a -q) docker rmi -f $(docker images -q)