Problem: Running Docker on ArchWSL doesn’t work by default. ArchWSL doesn’t allow systemd services.
docker info# ERROR: Cannot connect to the Docker daemon# at unix:///var/run/docker.sock. Is# the docker daemon running?
sudo systemctl start docker# System has not been booted with systemd as init# system (PID 1). Can't operate.# Failed to connect to bus: Host is down
systemctl start
on ArchWSL will result in an error. Update (June 2022): wsl-distrod is a better alternative to genie.
genie-systemd can be used to run systemd services like Docker. Note that Docker itself requires WSL2.
# Download genie-systemd from this pageopen https://github.com/arkane-systems/genie/releases
# Install itpacman -U genie-systemd*.pkg.tar.zst
# Run systemctl via geniesudo genie -c systemctl start docker
# It should work now 🎉docker info# Containers: 1# Server Version: 19.03.11-ce# Storage driver: overlay2# ...
Genie, or genie-systemd, is a workaround to run systemd services in WSL2. It can be installed by downloading the .tar.zst
package from the project’s GitHub releases page.
Genie only works on WSL2. Not running WSL2? Here’s a guide on converting an WSL1 installation to WSL2.
I’ve found that genie works the best for my case. However, there are also other ways to get Docker and systemd working:
I am a web developer helping make the world a better place through JavaScript, Ruby, and UI design. I write articles like these often. If you'd like to stay in touch, subscribe to my list.