-
Notifications
You must be signed in to change notification settings - Fork 476
Docker design alternatives
Alternative ways to run Docker apps in BOINC on Windows:
Volunteers manually install Docker Desktop, separately from BOINC. This includes a WSL image, docker_desktop.
The Docker wrapper runs docker.exe to create, run, and control Docker containers. Images are stored in the system-wide Docker store and are given special names to avoid conflicting with non-BOINC Docker usage.
The BOINC installer includes a WSL Linux image that includes Docker (call this the 'BOINC Docker WSL image'). This could be an option, like the VBox installer is currently.
The Docker wrapper runs a shell in this image, with a pipe for sending it commands (like the WSL wrapper does). It creates and runs Docker containers by sending Docker commands to this shell.
Docker images are stored within this image. There's no conflict with non-BOINC Docker usage.
Advantages of the WSL approach:
-
Volunteer doesn't have to install Docker Desktop. Downloading and running this installer takes a lot of clicks. It's intended for developers, not consumers. I'm not sure how many volunteers will do it; probably less than 50%, maybe much lower.
-
We control what's in the BOINC Docker WSL image. In particular we can include the CRUI library (needed for checkpointing) and configure Docker to use it.
Disadvantages of the WSL approach:
- The BOINC Docker WSL image might be large - not sure.
Questions:
- Is there any performance difference between the 2 approaches?
- Can apps use GPUs in the WSL approach?
- Can we run multithread apps in the WSL approach?