Did you know ... | Search Documentation: |
![]() | SWI-Prolog Docker images |
"Docker is an open platform for developers
and sysadmins to build, ship, and run distributed applications, whether
on laptops, data center VMs, or the cloud." More technically, Docker
allows for creating a Docker image that depends on the CPU (typically
AMD64) and the Linux kernel ABI. This image is self-contained and can
run unmodified on a wide variety of platforms, either natively (Linux),
using emulation (Windows Subsystem for Linux) or using a virtual machine
(Windows, MacOS). The Docker image is built from a recipe called the
Dockerfile. As this recipe is executed in the controlled Docker
environment its execution doesn't suffer from issues caused by an
incompatible OS, OS version or conflicting other applications.
So far the good news. There are of course a few catches. One is that Docker images are relatively large as they include, beside the application, all the OS pieces necessary to support the applications such as its libraries, supporting executables, etc. The image runs inside a container, which is good for security but complicates running it as a normal executable on the desktop.
For short, Docker is particularly suitable for deploying services. That is good for us as SWI-Prolog provides strong support for deployment as a (network) service. Docker images come in three flavours:
docker build -t name .