Debian10配置Docker,并安装HomeAssistant
买了个斐讯的DC1插排来折腾,所以要来建一个HomeAssistant服务器,研究了一圈踩了几个坑后,加上考虑自己手头的设备条件,还是决定采用Windows系统+虚拟机的形式来搞。本文用于记录过程供参考。
之前捡了台暴风的播酷云矿渣,运行Server 2019当做NAS一直非常稳定,为了方便,虚拟机决定就用系统自带的Hyper-V了,如何开启这功能的教程网上一搜一大把。
系统方面个人选了Debian 10系统,实际Ubuntu/CentOS这些也都可以,自己喜欢哪个用哪个好了。
官网下载系统镜像,小型镜像就够了,地址:https://www.debian.org/distrib/
Hyper-V里新建个外部的虚拟交换机,名称随便起,绑定到自己上网用的物理网卡,如下图所示。

然后就是按照流程一路新建一个虚拟机了,基本就是一路默认设置即可,但注意网卡选择上面新建的那个外部网卡。
内存大小根据自己物理机硬件来适当调整。我这里给虚拟机就起名叫Debian10。

系统选择之前下载好的系统镜像,点击完成即可。

创建完建议去设置里把安全启动关了。

然后就可以启动虚拟机了,点击连接可以看到虚拟机的画面。Debian的安装过程就不说了,Graphical inatall就是图形化界面安装,普通用户都建议选这个即可,系统安装流程也很简单,不再多说。

安装时会有软件源选择,建议不用默认那个,选个中科大,网易或者华为云这类国内源都可以,下载速度快。

最后把SSH服务勾选上就装完系统了。

系统安装时会让你设定root用户的密码,还有一个普通用户的用户名和密码,这些后面管理系统时需要用到,都务必记好。
重启进入系统后,这时候去路由器界面看一下虚拟机分到的IP,设备名称就是设定的虚拟机名称,我这里分到的是 192.168.2.164 。

然后就可以用putty这类管理工具进行SSH连接了,端口默认为22

连上SSH后用安装时设定的普通用户名和密码登陆,然后运行:
su输入root用户密码,切换到root模式。Debian默认不允许root用户登陆,所以要这样操作,当然你也可以修改文件允许root直接登录,可以自行搜索教程。
然后添加新存储库所需的软件包,执行:
apt install apt-transport-https ca-certificates curl software-properties-common gnupg2导入存储库的GPG密钥,成功会提示OK :
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -将稳定版的Docker APT存储库添加到软件存储库列表中:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"更新软件包并安装最新版本的Docker 社区版(Community Edition):
apt update
apt install docker-ce下载所需文件时需要连接到国外服务器,会比较慢,可以去喝杯茶,耐心等它完成,或者开始安装前路由器上挂个科学上网这类。
安装完成后,Docker服务默认会自启。输入命令检测运行情况如下:

默认情况下,root用户和具有sudo权限的用户才能执行Docker命令,这显然太不方便了。执行如下指令将现有用户添加到 docker组 :
usermod -aG docker $USER然后重新登录SSH,普通用户登陆就能直接运行docker相关命令了,不用加sudo。
到这里,Debian系统的Docker配置实际就完成了。还建议先把Docker的源换成国内阿里云这类,加快下载镜像速度,具体教程可以参考阿里云的容器镜像服务页面。
为了管理方便,我这里再来装个 Portainer ,这是Docker的图形化管理面板。
首先拉取最新镜像,运行:
docker pull portainer/portainer宿主机上创建portainer_data目录用于保存配置数据:
docker volume create portainer_data开始运行容器,成功运行的话会出现一串ID:
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
参数说明:
-d:容器在后台运行;
-p 9000:9000 :把容器的9000端口映射到宿主的9000端口,这是访问portainer管理页面需要用的端口;
-v /var/run/docker.sock:/var/run/docker.sock :把宿主机目录挂载到容器中同样的位置;
-v portainer_data:/data :把宿主机portainer_data数据卷挂载到容器/data目录;这时候浏览器里访问虚拟机IP+9000端口,就会看到 portainer 管理页面了,按照向导创建一个管理员账户即可使用。

这里是本地使用,选择Local即可,点击连接。

然后就能看到管理界面,虽然全英文,然而都不难懂,自己琢磨下就行。

管理页面装完后继续回到命令行,拉取HA的0.93.1版镜像。HA本身是开源程序,更新速度极快,版本号一直在快速迭代,这里要根据自己需求选择对应版本,不是越新越好:
docker pull homeassistant/home-assistant:0.93.1然后运行即可:
docker run -d --name="ha0.93.1" -v /home/lishuma/hass/config:/config -p 8123:8123 -p 8000:8000 homeassistant/home-assistant:0.93.1附带解释命令意思,整个命令实际很简单:
-d:表示在后台运行
–name:给容器设置一个名称,用于识别,后面操作重启等命令时都需要用到这个名字,这个可以自己随便改成简单易记的,这里我起名叫“ ha0.93.1 ”。
-v:配置目录映射(容器内的指定目录直接映射到本地主机的对应目录,比如上面那句命令里,意思就是将容器里HA的 config 目录映射到 /home/lishuma/hass/config 这个目录里,加粗的文字表示宿主上对应的目录,可以根据自己需求随意修改)
-p:映射端口(将容器内的8123端口直接映射到物理机的8123端口,这样输入NAS的IP地址即可访问HA页面,8000端口是DC1插排通讯需要使用的)
最后就是运行刚才下载的容器镜像了,一定要注意最后还是要加上版本号tag,不然系统找不到对应镜像,又会去自动下载最新版之后刷新一下,也能在管理页面里看到HA容器了。

浏览器输入虚拟机IP+8123端口,即可访问HA页面,创建一个管理员账户即可使用。

到此,在Windows系统下跑Debian虚拟机并在里面利用Docker运行 HomeAssistant程序(也是够绕的)就成功完成了。
Docker 和 HomeAssistant 都是很有意思的平台,能实现很多玩法,有关的更多内容就自行研究吧。
参考来源:
如何在Debian 10 Linux上安装和使用Docker
Installation Home Assistant on Docker
目录 返回
首页