
如何在容器里再跑 DockerDroidspaces 嵌套容器化 5 步完整教程【免費(fèi)下載鏈接】Droidspaces-OSSA lightweight, LXC-like container runtime for Android and Linux. Run full Linux distributions natively with zero performance penalty項(xiàng)目地址: https://gitcode.com/gh_mirrors/dr/Droidspaces-OSSDroidspaces是一款輕量級(jí)的 LXC 式容器運(yùn)行時(shí)讓你在 Android 或 Linux 上原生運(yùn)行完整的 Linux 發(fā)行版性能零損耗。更酷的是它原生支持嵌套容器化——可以直接在 Droidspaces 容器里跑 Docker把手機(jī)變成一臺(tái)隨身攜帶的 Docker 服務(wù)器運(yùn)行 Portainer、Home Assistant 等容器化服務(wù)。本文用 5 個(gè)簡(jiǎn)單步驟帶你完成配置。開始之前3 個(gè)前提條件別跳過(guò)?內(nèi)核版本推薦 5.x 及以上內(nèi)核4.4–4.19 也可以原生運(yùn)行 Docker/Podman詳見(jiàn) Documentation/Kernel-Configuration.md。?發(fā)行版建議用Ubuntu 24.04 LTS或Debian 12這類長(zhǎng)期支持版本穩(wěn)定性最佳。?存儲(chǔ)模式必須使用ext4 /data或rootfs.img稀疏鏡像模式。因?yàn)?Android 默認(rèn)的 f2fs 文件系統(tǒng)不支持 Docker 的overlay2存儲(chǔ)驅(qū)動(dòng)所需的 overlay 功能而 rootfs.img 會(huì)把容器放在原生 ext4 文件系統(tǒng)上。 用 Android App 安裝容器時(shí)在配置向?qū)е羞x擇Sparse Image稀疏鏡像容器類型即可這是官方推薦方式。第 1 步開啟 NAT 網(wǎng)絡(luò)隔離關(guān)鍵設(shè)置Docker 需要?jiǎng)?chuàng)建自己的docker0網(wǎng)橋主機(jī)網(wǎng)絡(luò)Host模式下會(huì)直接失敗所以必須使用 NAT 模式。打開 Droidspaces App → 進(jìn)入容器配置 → 將網(wǎng)絡(luò)模式改為NAT。NAT 模式還會(huì)自動(dòng)檢測(cè)活動(dòng)上行鏈路讓嵌套容器擁有獨(dú)立的互聯(lián)網(wǎng)訪問(wèn)。第 2 步切換 iptables 兼容層Docker 的網(wǎng)絡(luò)建立在 iptables 之上。當(dāng)前主流發(fā)行版默認(rèn)使用nftables后端在 Android 內(nèi)核上容易報(bào) chain not found 錯(cuò)誤。安裝 Docker 之前先進(jìn)入容器終端切換為 legacy 后端update-alternatives --set iptables /usr/sbin/iptables-legacy update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy?? 老內(nèi)核4.19 及以下上現(xiàn)代 nftables 經(jīng)常無(wú)法正確路由流量這一步尤為重要。第 3 步安裝 Docker在容器內(nèi)以 root 用戶執(zhí)行官方安裝腳本會(huì)自動(dòng)完成依賴配置curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh當(dāng)然也可以用發(fā)行版自帶的包管理器apt install docker.io安裝。第 4 步配置免 sudo 用戶可選但推薦把常用用戶加入docker組之后無(wú)需每次sudousermod -aG docker 你的用戶名 newgrp docker 安全小貼士容器不是沙箱建議像管理普通 Linux 服務(wù)器一樣日常使用普通用戶 sudo而不是直接 root 操作。第 5 步驗(yàn)證嵌套容器是否成功見(jiàn)證時(shí)刻 運(yùn)行經(jīng)典的 hello-world 測(cè)試docker run --rm hello-world看到Hello from Docker!字樣說(shuō)明嵌套容器化在你的手機(jī)上成功運(yùn)行了遇到問(wèn)題兩個(gè)快速排錯(cuò)技巧 Docker 服務(wù)起不來(lái)在終端手動(dòng)執(zhí)行sudo dockerd它會(huì)實(shí)時(shí)打印日志能直接定位缺失的內(nèi)核模塊、文件系統(tǒng)沖突或網(wǎng)橋問(wèn)題。 老內(nèi)核 / 主機(jī)模式的最后手段如果內(nèi)核太老無(wú)法使用 NAT iptables-legacy可關(guān)閉 Docker 自身的網(wǎng)絡(luò)管理寫入/etc/docker/daemon.jsoniptables: false, ip6tables: false, bridge: none之后嵌套容器需用--network host啟動(dòng)才能上網(wǎng)。 還想跑 rootless Docker / Podman / Flatpak在容器配置的 Security 區(qū)域開啟Allow Sandboxing開關(guān)即可App 中該選項(xiàng)在關(guān)閉時(shí)說(shuō)明內(nèi)核不支持 user namespace。參考文檔完整食譜含 Tailscale 移動(dòng)服務(wù)器方案Documentation/Cool-things-you-can-do.md嵌套容器內(nèi)核要求詳解Documentation/Kernel-Configuration.md功能深度解析沙箱機(jī)制原理Documentation/Features.md現(xiàn)在你的 Android 設(shè)備已經(jīng)是一臺(tái)真正的 Docker 宿主機(jī)——從手機(jī)里跑 Home Assistant 或 Portainer就這么簡(jiǎn)單?!久赓M(fèi)下載鏈接】Droidspaces-OSSA lightweight, LXC-like container runtime for Android and Linux. Run full Linux distributions natively with zero performance penalty項(xiàng)目地址: https://gitcode.com/gh_mirrors/dr/Droidspaces-OSS創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考