docker

David Anderson 2024-10-27 12:23:33 -07:00
parent abe2fccda4
commit 638a0a1b7a
1 changed files with 30 additions and 10 deletions

@ -1,13 +1,13 @@
## Docker and Podman
Docker and Podman provide mostly similar capabilities:
Docker and Podman provide similar capabilities:
they can build images from Dockerfiles, and run containers,
through a CLI interface.
They differ in their architecture:
They differ in architecture:
* Docker uses a daemon, which runs as root.
The CLI program is typically run by a non-root user, and communicates
with the daemon over a pipe.
* Docker uses a daemon, which typically runs as root.
The CLI program is typically run by a non-root user,
and communicates with the daemon over a pipe.
* Podman doesn't use a daemon.
The CLI program works directly.
@ -20,10 +20,15 @@ you have to run the CLI program as root.
### Unix
Docker must be installed
and configured so that the engine is always running.
Docker must be installed and configured so that
* the service is always running.
* the user under which the BOINC client runs
can run the DOCKER CLI programs.
There are various ways to do this: see
https://docs.docker.com/engine/install/ubuntu/
We can't use Podman on Unix because the BOINC client
can't run apps as root.
can't run apps as root (see above).
### Windows
@ -31,9 +36,24 @@ WSL and Hyper-V must be enabled.
There must be either
* A WSL distro with Podman installed.
* A WSL distro with Docker installed and configured to always run.
To do this, you can install a recent Linux distro (e.g. Ubuntu 22.04)
from the Windows store,
and install Podman on it:
```
sudo apt update
sudo apt -y install podman
```
Our plan is to create a WSL with Podman installed,
put it on the Windows store, recommend that to volunteers.
If both are present, a WSL with Podman is used.
* A WSL distro with Docker installed and configured to always run.
It suffices to install Docker Desktop.
If both are present, a WSL distro with Podman is used.
We prefer Podman over Docker on Windows because it's simpler
(for us and for volunteers who want to do it themselves)
to install Podman.
## Running a job