|
使用 Docker 容器安装
1. 安装 Docker
更新系统:同样,先更新系统软件包。
- sudo apt update
- sudo apt upgrade -y
复制代码
安装 Docker:按照官方文档的指导安装 Docker 和 Docker Compose。
- sudo apt install docker.io docker-compose -y
复制代码
镜像源网址更改- sudo mkdir -p /etc/docker
- sudo tee /etc/docker/daemon.json <<EOF
- {
- "registry-mirrors": [
- "https://docker.nju.edu.cn",
- "https://hub.littlediary.cn",
- "https://hub.xdark.top",
- "https://dockerpull.org",
- "https://hub.crdz.gq",
- "https://docker.1panel.live",
- "https://docker.unsee.tech"
- ]
- }
- EOF
复制代码
启动并设置开机自启:- sudo systemctl daemon-reload
- sudo systemctl restart docker
- systemctl enable docker
复制代码
2. 拉取并运行 Home Assistant 镜像
拉取镜像:从 Docker Hub 拉取 Home Assistant 的官方镜像。
- sudo docker pull homeassistant/home-assistant
复制代码
Home Assistant 的配置和数据需要持久化存储,避免容器重启后丢失:
- # 在用户目录下创建配置文件夹(推荐)mkdir -p ~/homeassistant/config
- # 确保目录权限正确(防止容器权限问题)sudo chmod -R 777 ~/homeassistant/config
复制代码
运行 Home Assistant 容器
执行以下命令启动容器:
- sudo docker run -d \
- --name homeassistant \
- --privileged \
- --restart=unless-stopped \
- -v ~/homeassistant/config:/config \
- -v /etc/localtime:/etc/localtime:ro \
- --network=host \
- homeassistant/home-assistant:latest
复制代码
参数解释:
-d:后台运行容器。
--name homeassistant:容器命名为 homeassistant。
--privileged:授予容器完全硬件访问权限(某些设备如 Zigbee 适配器需要)。
--restart=unless-stopped:容器自动重启(除非手动停止)。
-v ~/homeassistant/config:/config:将本地目录映射到容器的配置存储位置。
-v /etc/localtime:/etc/localtime:ro:同步宿主机时间到容器。
--network=host:使用宿主机的网络模式(简化设备发现)。
3. 访问 Home Assistant 控制面板
打开浏览器,输入你的设备 IP + 端口 8123:
首次启动需等待 1-5 分钟初始化,之后按提示创建账户并配置。
4. 配置与维护
配置文件管理:在指定的配置路径下编辑configuration.yaml文件来配置 Home Assistant。
容器管理:使用docker命令来管理容器,如查看容器状态、停止和启动容器等。
- sudo docker ps # 查看容器状态
- sudo docker stop homeassistant # 停止容器
- sudo docker start homeassistant # 启动容器
复制代码
更新镜像:拉取最新的 Home Assistant 镜像,并重新创建容器以更新到最新版本。
- # 停止并删除旧容器
- sudo docker stop homeassistant
- sudo docker rm homeassistant
- # 拉取最新镜像
- sudo docker pull homeassistant/home-assistant:latest
- # 重新运行容器(使用原有配置目录)
- sudo docker run -d \
- --name homeassistant \
- --privileged \
- --restart=unless-stopped \
- -v ~/homeassistant/config:/config \
- -v /etc/localtime:/etc/localtime:ro \
- --network=host \
- homeassistant/home-assistant:latest
复制代码
用 iptables 开放端口:
- # 允许 8123 端口sudo iptables -A INPUT -p tcp --dport 8123 -j ACCEPT
- # 保存规则(否则重启后失效)sudo apt install iptables-persistent -y sudo netfilter-persistent save
复制代码
验证端口是否开放
- # 查看 8123 端口监听状态ss -tunlp | grep 8123
- # 或使用 nmap 扫描(需安装 nmap)sudo apt install nmap -y nmap -p 8123 localhost
复制代码
|
|