ViSUS Docker Deployment

From
Revision as of 17:25, 8 September 2017 by Admin (talk | contribs) (Quick start)
Jump to: navigation, search

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: 2dwebviewer.png

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)