Using Docker¶
Simpler and smaller image¶
Docker images are periodically updated which contain a working version of the code and examples. To use the images (available at the E4MMA docker repository), you can try, for example:
sudo docker pull awsteiner/e4mma:alpha5_o930a5_u24.04_min
sudo docker run --rm -p 8888:8888 -it awsteiner/e4mma:alpha5_o930a5_u24.04_min
Then, inside the docker image, you can either run the code directly:
/home/np3m/e4mma/eos_nuclei -help
or run the examples:
cd /home/np3m/e4mma/examples
./A_point_nuc.scr
Larger image with Python support¶
If you want to include Python support (at the expense of a larger image) use a different image:
sudo docker pull awsteiner/e4mma:alpha5_ju_o930a4_u24.04
sudo docker run --rm -p 8888:8888 -it awsteiner/e4mma:alpha5_ju_o930a4_u24.04
With this image you can start a Jupyter server:
source /home/np3m/e4mma/docker/start_server
and then you can start a Jupyter notebook using the link specified by the server log.
Transferring files with Docker images¶
If you want to transfer files between the docker container and your directory on the host machine, you can try a “bind mount”, e.g.:
sudo docker run -rm -p 8888:8888 --mount \
type=bind,source=/path/on/host,target=/home/np3m/e4mma/mounted_dir \
-it awsteiner/e4mma:alpha5_ju_o930a4_u24.04
To get more information about how bind mounts work in docker, see
this page.
Keep in mind, inside the container, you will need to use sudo
to
create or modify files in the bound directory (no superuser password
is needed).