Runtimes

ilo shell by default searches your local system for supported runtimes. In order to force the usage of a specific runtime, use the --runtime flag or set the ILO_SHELL_RUNTIME environment variable in your system. The --runtime flag overwrites the environment variable.
Docker
Force ilo to use docker like this:
$ ilo shell --runtime docker
# use alias
$ ilo shell --runtime d
# use env variable
$ ILO_SHELL_RUNTIME=docker ilo shell
nerdctl
Force ilo to use nerdctl like this:
$ ilo shell --runtime nerdctl
# use alias
$ ilo shell --runtime n
# use env variable
$ ILO_SHELL_RUNTIME=nerdctl ilo shell
Podman
Force ilo to use podman like this:
$ ilo shell --runtime podman
# use alias
$ ilo shell --runtime p
# use env variable
$ ILO_SHELL_RUNTIME=podman ilo shell
Apple Container
Force ilo to use Apple’s container like this:
$ ilo shell --runtime container
# use alias
$ ilo shell --runtime c
# use env variable
$ ILO_SHELL_RUNTIME=container ilo shell
This runtime runs on macOS only (Apple silicon, macOS 26 or newer) and needs its services started once per boot with container system start; ilo does not start them for you.
A single shell works as expected. Sharing one container across several terminals at once is not supported: this runtime exposes no way to tell whether another terminal still has the container open, so the first session to exit stops it. Pass --keep-running-on-exit while a second terminal is open to keep the container alive.
Auto Selection
If not otherwise specified, ilo always picks runtimes in this order, depending on which are available on your system:
- podman
- nerdctl
- docker
- container (macOS only)