Complete installation guide for Docker and mise on Ubuntu, Debian, Arch Linux, Omarchy, macOS, and Windows. Includes Intel processor workarounds.

15 min read

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 update

Step 2: Install prerequisite packages

sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Step 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.gpg

Step 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/null

Step 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-plugin

Step 6: Verify installation

sudo docker run hello-world

You 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 docker

After this, you can run Docker commands without sudo.


On Arch Linux and Omarchy

Step 1: Update system packages

sudo pacman -Syu

Step 2: Install Docker

sudo pacman -S docker docker-compose

Step 3: Start and enable Docker service

sudo systemctl start docker
sudo systemctl enable docker

Step 4: Verify installation

sudo docker run hello-world

Step 5: Add your user to the docker group

sudo usermod -aG docker $USER
newgrp docker

Omarchy-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.app

Option 2: Download Docker Desktop

  1. Visit https://docs.docker.com/desktop/install/mac-install/
  2. Download Docker Desktop for Mac (Apple Silicon or Intel)
  3. Double-click the .dmg file and drag Docker to Applications
  4. Open Docker Desktop from Applications

Verify installation:

docker run hello-world

On Windows

Prerequisites:

  • Windows 10 version 2004 or higher, or Windows 11
  • WSL 2 (Windows Subsystem for Linux) enabled
  • Virtualization enabled in BIOS

Installation:

  1. Visit https://docs.docker.com/desktop/install/windows-install/
  2. Download Docker Desktop for Windows
  3. Run the installer and follow prompts
  4. When prompted, enable WSL 2 backend
  5. Restart your computer if required

Verify installation: Open PowerShell and run:

docker run hello-world

Installing 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 --version

If 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-plugin

On Arch Linux

sudo pacman -S docker-compose

Installing 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 | sh

This 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 ~/.bashrc

For Zsh:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
echo 'eval "$("$HOME/.local/bin/mise" activate zsh)"' >> ~/.zshrc
source ~/.zshrc

For Fish:

set -Ux PATH $HOME/.local/bin $PATH
"$HOME/.local/bin/mise" activate fish | source

Step 3: Verify installation

mise --version

You should see the version number (e.g., 2024.1.0).


Installing Mise on macOS

Using Homebrew:

brew install mise

Add to your shell:

For Bash (add to ~/.bashrc):

eval "$(mise activate bash)"

For Zsh (add to ~/.zshrc):

eval "$(mise activate zsh)"

Verify:

mise --version

Installing 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:


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@latest

The -g flag makes this the global default version.

Step 2: Verify installation

node --version
npm --version

You 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.toml

Intel 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 -1

If 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 AVX2

Workarounds 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 onboard

For OpenClaw:

# Install Node.js via mise, then install OpenClaw
mise use -g nodejs@latest
curl -fsSL https://openclaw.ai/install.sh | bash

Option 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 --version shows version 24.x or higher
  • docker compose version shows version 2.x or higher
  • docker run hello-world executes successfully
  • (Optional) Can run Docker without sudo: docker ps

Mise Checklist

  • mise --version shows a version number
  • Shell integration is working (no "command not found" errors)
  • (Optional) node --version shows 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 docker

Issue: "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 docker

Issue: 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 --version

Issue: "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:

  1. Choosing and setting up a VPS
  2. Securing your VPS
  3. Installing and configuring OpenClaw and PicoClaw

Next: Choosing a VPS - Select the right VPS provider for your AI assistant.