Skip to content

IOT

Run Ubuntu docker in Windows 11

Overview

Summary

This guide demonstrates how to set up a self-hosted GitHub Actions runner within an Ubuntu WSL (Windows Subsystem for Linux) environment on Windows 11.

Prerequisites

  • Windows 11
  • WSL 2 installed (wsl --install)
  • Docker Desktop (optional, but recommended for container workflows)

Installation Process

The following log session details the complete installation process, from setting up the WSL environment to registering the runner.

View Full Installation Log Session
C:\Users\WJLEE>wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu-24.04 (Default)
docker-desktop

C:\Users\WJLEE>wsl -d Ubuntu-24.04
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE$ mkdir actions-runner && cd actions-runner
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ curl -o actions-runner-linux-x64-2.322.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.322.0/actions-runner-linux-x64-2.322.0.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  113M  100  113M    0     0  11.5M      0  0:00:09  0:00:09 --:--:-- 12.5M
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ echo "b13b784808359f31bc79b08a191f5f83757852957dd8fe3dbfcc38202ccf5768  actions-runner-linux-x64-2.322.0.tar.gz" | shasum -a 256 -c
actions-runner-linux-x64-2.322.0.tar.gz: OK
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ tar xzf ./actions-runner-linux-x64-2.322.0.tar.gz


wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ ./config.sh --url https://github.com/wenchiehlee/Selenium-Actions.Auction --token ACV3XP4YIAC7ZDQSFUKTJZ3HYVWI4

--------------------------------------------------------------------------------
|        ____ _ _   _   _       _          _        _   _                      |
|       / ___(_) |_| | | |_   _| |__      / \   ___| |_(_) ___  _ __  ___      |
|      | |  _| | __| |_| | | | | '_ \    / _ \ / __| __| |/ _ \| '_ \/ __|     |
|      | |_| | | |_|  _  | |_| | |_) |  / ___ \ (__| |_| | (_) | | | \__ \     |
|       \____|_|\__|_| |_|\__,_|_.__/  /_/   \_\___|\__|_|\___/|_| |_|___/     |
|                                                                              |
|                       Self-hosted runner registration                        |
|                                                                              |
--------------------------------------------------------------------------------

# Authentication


√ Connected to GitHub

# Runner Registration

Enter the name of the runner group to add this runner to: [press Enter for Default]

Enter the name of runner: [press Enter for TAICLTb37TmOcq7]

This runner will have the following labels: 'self-hosted', 'Linux', 'X64'
Enter any additional labels (ex. label-1,label-2): [press Enter to skip] ubuntu-latest

√ Runner successfully added
√ Runner connection is good

# Runner settings

Enter name of work folder: [press Enter for _work]

√ Settings Saved.

wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ ubuntu-latest
ubuntu-latest: command not found
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ ./run.sh

√ Connected to GitHub

Current runner version: '2.322.0'
2025-03-03 07:52:30Z: Listening for Jobs
2025-03-03 07:52:36Z: Running job: sync-backup-workflow

Outcome

The runner is successfully registered and listening for jobs.

IOT Device Comparison

Overview

Executive Summary

This article provides a side-by-side specification comparison between the Raspberry Pi 5 and a generic/unnamed IoT device. This comparison highlights differences in AI performance, processing power, and connectivity.

Comparison Table

Specification Device (Provided) Raspberry Pi 5
AI Performance 67 INT8 TOPS 13 or 26 TOPS (with AI HAT+ accessory)
GPU NVIDIA Ampere architecture with 1024 CUDA cores and 32 Tensor cores VideoCore VII
CPU 6-core Arm Cortex-A78AE v8.2 64-bit CPU, 1.5MB L2 + 4MB L3 2.4GHz quad-core 64-bit Arm Cortex-A76 CPU, 512KB L2 (per core) + 2MB shared L3
Memory 8GB 128-bit LPDDR5, 102 GB/s LPDDR4X-4267 SDRAM, available in 2GB, 4GB, and 8GB variants
Storage Supports SD card slot and external NVMe MicroSD card slot; PCIe 2.0 x1 interface (requires adapter for external NVMe)
USB Ports Not specified 2 × USB 3.0 ports, 2 × USB 2.0 ports
Networking Not specified Gigabit Ethernet, Dual-band 802.11ac Wi-Fi, Bluetooth 5.0/BLE
Display Outputs Not specified Dual 4Kp60 HDMI display output with HDR support
Camera/Display Interface Not specified 2 × 4-lane MIPI camera/display transceivers
Power Supply Not specified 5V/5A DC power via USB-C, with Power Delivery support
Additional Features Not specified Real-time clock (RTC), Power button, Raspberry Pi standard 40-pin header

Note

The "Device (Provided)" specifications suggest a high-performance edge AI device, likely based on NVIDIA Jetson Orin Nano or similar architecture due to the "Ampere architecture" and "67 TOPS" reference.