本教程我已經在小米手機上調試幾遍了,也是我目前已知最 可靠、簡單 的方案。
為成功下載安裝程序,手機里最好提前安裝VPN(比如GreenNet, 我可以免費提供)。沒有安裝VPN,則需要後面更改Docker 源。
1. 下載 Alpine Term:(Alpine的中文是阿爾卑斯山,這裡是一種Linux系統)
為啥選它,因為它已經內置了docker, 而且,本身是Apk,手機上直接安裝,簡直太方便了。
網頁地址: https://github.com/FakeRajbhx/alpine-term/releases/tag/New
當前最新版的連結(578M):
https://link.zhihu.com/?target=https%3A//github.com/FakeRajbhx/alpine-term/releases/download/New/alpine-term-v16.0-release.apk
手機下載完成後,安裝它。
要求:
- · Android 7.0+
- · 至少2G 手機空間.
- · 網絡
2. 登錄Alpine
安裝,打開,登錄系統,用戶 alpine 密碼: alpine
然後切換到root帳戶,輸入sudo -s 密碼:alpine
如果您希望用SSH遠程手機,需要,本例程不需要遠程。 A. 修改root密碼, 輸入 passwd ,再輸入兩次新密碼,比如 123456。 B. 因為系統默認是禁止ssh密碼登錄的,如果需要,先開啟它,輸入: sed -I s/PasswordAuthentication no/PasswordAuthentication yes/g』 /etc/ssh/sshd_config 如果還需要開機root用戶登錄的話,輸入下面一行 sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config C. 然後重啟sshd服務,輸入 service sshd restart D. 映射埠:見後面內容 |
3. 配置APK源和DNS(如果安裝了VPN,可以忽略這步,個人建議安裝VPN,因為換源步驟手工輸入太多,太麻煩裝上VPN反倒簡單。)
因為Alpine默認的都是國外的源和DNS,所以這裡都需要改成國內的。
更換為阿里雲的資源
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
更換為114 的DNS,兩條都換
sed -i 's/nameserver 185.120.22.15/nameserver 223.5.5.5/g' /etc/resolv.conf
sed -i 's/nameserver 94.16.114.254/nameserver 119.29.29.29/g' /etc/resolv.conf
這樣網絡就正常可以使用了,接下來設置時區
setup-timezone
等待提示 Which timezone are you in? (『?』 for list) [UTC],然後輸入 Asia/Shanghai
修改完成後執行date查看時間,沒時差就Ok.
4. 手動運行Docker:
service docker start
註:因為手機不同,性能不同,加載Docker需要的時間可能很長,輸入後面步驟可能會提示錯誤,因此,可以多等一會,然後試試docker version,顯示版本號則表明啟動成功。
題外話:關於Docker 命令,常用的有: 列出所有正在運行的容器:docker container ls 或者 docker ps |
5. 安裝 Home Assistant,後面簡稱HA
輸入命令: docker run -d --name="hass" -v /root/hass:/config -p 8123:8123 -e TZ="Asia/Shanghai" homeassistant/home-assistant
解釋一下命令的意思: -d:表示在後台運行 –name:給容器設置別名(不然會隨機生成,為了方便管理) -v:配置數據卷(容器內的數據直接映射到本地主機環境 -p:映射埠(容器內的埠直接映射到本地主機埠) 最後便是剛才下載的鏡像了。 |
這個過程可能很長,取決於網速和手機性能。需要耐心等待。有可能需要兩三個小時。
6. 啟動HA,
執行: docker ps
如果屏幕如下,最後一行看到了 hass, 則本步驟不執行,本步驟適用於後面重啟後手工執行
7. 開通埠映射:
屏幕左上角,手指右滑,調出上面菜單,選用箭頭處的QEMU:
輸入:
hostfwd_add tcp::8123-:8123 (用於瀏覽器打開HA)
hostfwd_add tcp::2222-:22 (用於SSH連接手機,不需要則不輸入)
8. 查看當前手機在區域網內的地址
通過手機的頂部下拉菜單,找到WIFI連接,查找本手機IP。
9. 登錄HA
- 當前手機瀏覽器訪問 127.0.0.1:8123
- 電腦或手機瀏覽器內輸入: IP:8123 (IP為你剛查到的IP),啟動可能需要一段時間才能打開, 請耐心等待。打開後界面如下,需要創建用戶名和密碼
10. 每次重啟後,需要重複下面的操作
- 登錄到alpine用戶,帳號密碼默認alpine
- 輸入 sudo -i 默認 alpine
- 輸入 service docker start 運行 docker
- 輸入docker start hass ,啟動 HA
- 左上角手指滑動,調出 QEMU 菜單,進入環境後,輸入 hostfwd_add tcp::8123-:8123
註: HA重啟後的3-5分鐘內,瀏覽器訪問不到HA屬於正常現象。
11. 設置自啟動
- 執行rc-update add docker boot app每次啟動時,docker都會自動啟動
- 在HA運行狀態下執行 docker update --restart=always hass 每次docker啟動後,HA都會自動運行
但是,但是,你還是需要每次重啟Alpine-term後,在QEMU環境裡開放埠,方法是手工輸入 hostfwd_add tcp::8123-:8123
12. 其它說明
- 遇到網絡超時timeout錯誤,就多試幾次問題不大,不需要換源啥的。
- 遇到HA啟動報錯的話就多執行兩次
- 如果經過前面兩步仍存在奇怪的問題,建議修改時區,再不行就手機恢復出廠設置重新來一遍防止有髒數據,防止有髒數據殘留
- 本教程安裝的HA,不包含Supervisor,請用HACS代替。
- 每次啟動app,持續幾分鐘到十幾分鐘不等,若想HA長時間在線,建議開啟app的後台運行權限。防止息屏或者後台被殺掉。
- 在我測試過程中, 曾幾次升級Alpine環境(apk update; apk upgrade),每次升級後,都會導致Docker不正常,所以,不用升級環境了。再說,HA本身是能夠自動升級的,HA好用就行了。或者,乾脆卸載自帶的Docker,另外安裝新的。(需要諮詢請聯繫我)
測試很多遍,編寫不易,順手點個讚吧。