Complete installation guide for Docker and mise on Ubuntu, Debian, Arch Linux, Omarchy, macOS, and Windows. Includes Intel processor workarounds.
Installing Docker and Mise on Linux, macOS, and Windows
This chapter provides step-by-step instructions for installing Docker and mise on your system. Docker is required for running PicoClaw, and mise is helpful for managing Node.js versions if you plan to run OpenClaw without Docker.
Prerequisites
Before starting, ensure you have:
- A user account with sudo privileges
- An internet connection
- At least 5 GB of free disk space
- For VPS users: SSH access to your server
Installing Docker
On Ubuntu or Debian
Step 1: Update your package index
sudo apt-get updateStep 2: Install prerequisite packages
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-releaseStep 3: Add Docker's official GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpgStep 4: Set up the Docker repository
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullStep 5: Install Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginStep 6: Verify installation
sudo docker run hello-worldYou should see a message saying "Hello from Docker!"
Step 7: Add your user to the docker group (optional but recommended)
sudo usermod -aG docker $USER
newgrp dockerAfter this, you can run Docker commands without sudo.
On Arch Linux and Omarchy
Step 1: Update system packages
sudo pacman -SyuStep 2: Install Docker
sudo pacman -S docker docker-composeStep 3: Start and enable Docker service
sudo systemctl start docker
sudo systemctl enable dockerStep 4: Verify installation
sudo docker run hello-worldStep 5: Add your user to the docker group
sudo usermod -aG docker $USER
newgrp dockerOmarchy-specific note: Omarchy comes with Docker pre-configured in most setups. If the above commands show Docker is already installed, simply ensure your user is in the docker group.
On macOS
Option 1: Using Homebrew (Recommended)
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Docker
brew install --cask docker
# Start Docker
open /Applications/Docker.appOption 2: Download Docker Desktop
- Visit https://docs.docker.com/desktop/install/mac-install/
- Download Docker Desktop for Mac (Apple Silicon or Intel)
- Double-click the .dmg file and drag Docker to Applications
- Open Docker Desktop from Applications
Verify installation:
docker run hello-worldOn Windows
Prerequisites:
- Windows 10 version 2004 or higher, or Windows 11
- WSL 2 (Windows Subsystem for Linux) enabled
- Virtualization enabled in BIOS
Installation:
- Visit https://docs.docker.com/desktop/install/windows-install/
- Download Docker Desktop for Windows
- Run the installer and follow prompts
- When prompted, enable WSL 2 backend
- Restart your computer if required
Verify installation: Open PowerShell and run:
docker run hello-worldInstalling Docker Compose
Docker Compose is included with Docker Desktop on macOS and Windows. On Linux, you may need to install it separately.
Verify Docker Compose is installed
docker compose version
# or (older versions)
docker-compose --versionIf not installed, follow these steps:
On Ubuntu/Debian
Docker Compose plugin should be installed with Docker Engine (Step 5 above). If missing:
sudo apt-get install -y docker-compose-pluginOn Arch Linux
sudo pacman -S docker-composeInstalling Mise
Mise is a tool for managing multiple versions of programming languages and tools. It is particularly useful for managing Node.js versions if you plan to run OpenClaw directly without Docker.
What is Mise?
Think of mise as a version manager for development tools. Just as you might use different browsers for different tasks, you sometimes need different versions of Node.js, Python, or other tools for different projects. Mise makes switching between versions seamless.
Installing Mise on Linux
Step 1: Run the install script
curl https://mise.run | shThis installs mise to ~/.local/bin/mise.
Step 2: Add mise to your shell
For Bash:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
echo 'eval "$("$HOME/.local/bin/mise" activate bash)"' >> ~/.bashrc
source ~/.bashrcFor Zsh:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
echo 'eval "$("$HOME/.local/bin/mise" activate zsh)"' >> ~/.zshrc
source ~/.zshrcFor Fish:
set -Ux PATH $HOME/.local/bin $PATH
"$HOME/.local/bin/mise" activate fish | sourceStep 3: Verify installation
mise --versionYou should see the version number (e.g., 2024.1.0).
Installing Mise on macOS
Using Homebrew:
brew install miseAdd to your shell:
For Bash (add to ~/.bashrc):
eval "$(mise activate bash)"For Zsh (add to ~/.zshrc):
eval "$(mise activate zsh)"Verify:
mise --versionInstalling Mise on Windows
Mise has limited Windows support. For Windows, we recommend using WSL 2 with Ubuntu, then following the Linux installation instructions above.
Alternatively, you can use:
- nvm-windows for Node.js version management: https://github.com/coreybutler/nvm-windows
- Docker to run containers without needing Node.js installed locally
Using Mise to Install Node.js
Once mise is installed, you can use it to install Node.js (needed for OpenClaw):
Step 1: Install Node.js (recommended for OpenClaw)
mise use -g nodejs@latestThe -g flag makes this the global default version.
Step 2: Verify installation
node --version
npm --versionYou should see the latest Node.js version.
Step 3: Install a specific version for a project (optional)
# Navigate to your project
cd ~/my-project
# Set a specific Node.js version for this directory
mise use -g nodejs@latest
# This creates a .mise.toml file in the project
cat .mise.tomlIntel Processor Limitations
Some older Intel processors (pre-2013) lack the AVX2 instruction set that certain Docker images require. Here is how to check and work around this:
Check if Your CPU Supports AVX2
On Linux:
grep -o 'avx2' /proc/cpuinfo | head -1If this returns avx2, your CPU supports it. If nothing is returned, your CPU does not support AVX2.
On macOS:
sysctl -a | grep machdep.cpu.features | grep AVX2Workarounds for CPUs Without AVX2
Option 1: Use Native Binaries Instead of Docker
For PicoClaw:
# Download the native binary
wget https://github.com/sipeed/picoclaw/releases/download/v0.1.1/picoclaw-linux-amd64
chmod +x picoclaw-linux-amd64
./picoclaw-linux-amd64 onboardFor OpenClaw:
# Install Node.js via mise, then install OpenClaw
mise use -g nodejs@latest
curl -fsSL https://openclaw.ai/install.sh | bashOption 2: Build Custom Docker Images
If you need Docker but your CPU lacks AVX2, you may need to build images from source on your target machine. This ensures the binaries are compiled for your specific CPU.
Option 3: Upgrade Your VPS
Most modern VPS providers use recent CPUs with full AVX2 support. If you are on an older VPS, consider migrating to a newer plan:
- Hetzner Cloud (all instances)
- Hostinger KVM plans
- NetCup VPS G12 series (when available)
Verification Checklist
Before proceeding to the next chapter, verify your installations:
Docker Checklist
-
docker --versionshows version 24.x or higher -
docker compose versionshows version 2.x or higher -
docker run hello-worldexecutes successfully - (Optional) Can run Docker without sudo:
docker ps
Mise Checklist
-
mise --versionshows a version number - Shell integration is working (no "command not found" errors)
- (Optional)
node --versionshows a version if you installed Node.js
System Checklist
- CPU AVX2 support verified (or workaround identified)
- At least 5 GB free disk space:
df -h - User has sudo privileges
Common Issues and Solutions
Issue: "Cannot connect to the Docker daemon"
Solution:
# Check if Docker is running
sudo systemctl status docker
# Start Docker if not running
sudo systemctl start docker
# Enable auto-start on boot
sudo systemctl enable dockerIssue: "Permission denied" when running Docker
Solution:
# Add user to docker group
sudo usermod -aG docker $USER
# Apply changes (log out and back in, or use):
newgrp dockerIssue: Mise not found after installation
Solution:
# Check if mise is in the expected location
ls -la ~/.local/bin/mise
# Add to PATH manually
export PATH="$HOME/.local/bin:$PATH"
# Verify
~/.local/bin/mise --versionIssue: "AVX2 not supported" errors
Solution: Use native binary installation instead of Docker, or upgrade to a VPS with a newer CPU.
Next Steps
You now have Docker and mise installed on your system. The next chapters will guide you through:
- Choosing and setting up a VPS
- Securing your VPS
- Installing and configuring OpenClaw and PicoClaw
Next: Choosing a VPS - Select the right VPS provider for your AI assistant.