Introduction
Containerization is a method to isolate computing environment (operating system, data, software, configurations, etc.) into reusable packages called images. These are binary files which can easily be transferred between different machines. Images are instantiated into running Containers by a Container Engine. From user perspectiveuser perspective, working with the Container is similar to working with another operating system on the shared hardware resources. This resembles what Virtual Machines provide. However, there are important technical differences between Container and Virtual Machine technologies. Mainly, any number of Containers can be executed by a single Container Engine on a single operating system. In case of Virtual Machines, each runs its own operating system with its own layer of hardware abstraction. In consequence, Containers are in general quicker to start and easier to operate.
Docker
The main Containerization technology used now is Docker. It consists of image file format description, the Container Engine and other components. It is available for Linux, macOS and Windows.
For more information, check check Docker overview
uDocker
uDocker is ":
a basic user tool to execute simple docker containers in user space without requiring root privileges
...
For more information, check check indigo-dc/udocker
Docker vs uDocker
Important: While uDocker has mostly identical commands and parameters as Docker, there are some minor differences:
...
Docker on your own computer:
Code Block language bash scp login.eufus.eu:~g2tomz/public/imas-installer-20180921112143.tar.xz ./ xzcat imas-installer-20180921112143.tar.xz | docker load
uDocker on Gateway:
Code Block language bash xzcat~/.local/bin/udocker load -i ~g2tomz/public/imas-installer-20180921112143.tar.xz | ~/.local/bin/udocker load
Demonstration 1: Python script
...
Check correctness of the results, on Gateway:
Code Block language bash idsdump 1 1 pf_active
...