Home Assistant 和 Docker 入门

导航至

本文由 Theophilus Onyejiaku 撰写。向下滚动查看作者简介。

home-assistant -docker

在本文中,我们将介绍如何开始使用 Home Assistant 和 Docker。首先,我们将根据您的操作系统查看在您的系统上安装 Docker 的先决条件,并演练如何使用 CLI 在 Docker 上安装和运行您的 Home Assistant。然后,我们将讨论安装过程中遇到的常见问题的解决方案。

什么是 Docker?

Docker 是一个软件平台,允许系统管理员和开发人员在容器中创建、部署和运行应用程序。在此上下文中,容器是一个环境,其中包含在主机操作系统中运行特定应用程序所需的所有依赖项、库、代码、系统工具等。容器是从镜像创建的,镜像是一个用于定义容器应包含内容的模板。

无论您的系统操作系统和基础设施如何,Docker 都允许您在特定环境中运行任何应用程序。此外,它使管理和扩展您的环境变得容易。借助 Docker,构建和部署您的应用程序变得一致且高效。

什么是 Home Assistant?

Home Assistant 是一个灵活的平台,允许您控制和自动化您的家庭设备,例如您的摄像头、恒温器、灯和传感器。它是开源的,并且与 1,000 多种服务和设备完全集成,例如 Amazon Alexa 和 Google Assistant。Home Assistant 配备了用户友好的统一的基于 Web 的用户界面,允许您创建复杂的自动化。或者,换句话说,我们的家庭设备也可以使用 Python 脚本通过 Home Assistant 中称为 Home Assistant Python API 的内置 Python API 进行交互。

Docker 上的 Home Assistant

Docker 是在容器化环境中运行 Home Assistant 的常用方法。在 Docker 上运行 Home Assistant 的一个主要优势是该软件与主机系统以及可能在同一主机系统上运行的其他容器隔离。此外,它非常便携且一致。该软件可以轻松地从一个主机系统移动到另一个主机系统,只要目标系统安装了 Docker,容器环境就完全保持不变。部署软件的简易性也非常简单且安全。

安装 Docker 的先决条件

根据您机器的操作系统,您的系统必须满足一些最低要求。

Windows 10 系统要求

  • Windows 11 64 位或 Windows 10 64 位

  • 64 位处理器

  • 4 GB 或更高的系统 RAM

此外,必须启用 WSL 2 功能和 BIOS 级硬件虚拟化支持。

macOS 系统要求

  • macOS 版本 11 或更高版本

  • 4 GB 或更高的系统 RAM

此外,请确保未安装低于 4.3.30 版本的 virtualBox。它与 Docker Desktop 不兼容。

Linux 系统要求

  • 64 位内核和 CPU

  • KVM 虚拟化支持

  • 系统 init 系统

  • Gnome、MATE 或 KDE 桌面环境

  • 4 GB 或更高的系统 RAM

此外,确保在用户命名空间中启用了配置 ID 映射。

如何安装 Docker

要安装 Docker,您首先需要访问 Docker 网站

download-docker

现在,如何安装 Docker 取决于您机器的操作系统。下面是在 Windows、macOS 和 Linux 上安装 Docker 的一般步骤。您可以在 官方网站上找到有关 Docker 安装的更多信息。

Windows 安装

  1. 在 Docker 网站上,下载适用于 Windows 的 Docker Desktop 安装程序。

  2. 下载完成后,双击下载的安装程序以开始 Docker 安装。

  3. 按照提示完成安装。

  4. 成功安装后,Docker Desktop 将可以从您的系统托盘访问。

macOS 安装

  1. 在 Docker 网站上,下载标题为 Apple Chip 的适用于 Mac 的 Docker Desktop 安装程序。

  2. 下载完成后,双击下载的安装程序以开始 Docker 安装。

  3. 将 Docker 图标拖到“应用程序”文件夹以完成安装。

  4. 成功安装后,从“应用程序”文件夹打开 Docker。

Linux 安装

在 Linux 操作系统上安装 Docker 的过程因发行版或平台而异。但是,在大多数情况下,以下是一般步骤

  1. 在 Docker 网站上,单击适用于 Linux 的 Docker Desktop 安装程序。

  2. 按照有关支持哪些平台(Ubuntu、Debian 和 Fedora)的说明进行操作。

  3. 成功安装后,打开您的应用程序菜单并搜索 Docker Desktop。选择 Docker Desktop 并启动您的 Docker。

在 Docker 上安装 Home Assistant

有很多方法可以在 Docker 上安装 Home Assistant。我们将介绍一种在 Docker 上安装 Home Assistant 的非常简单的方法,即通过使用您机器上的 CLI。

  • 如果您使用的是 Windows,只需在搜索栏中键入 cmd,然后单击搜索结果中的命令提示符。

  • 如果您使用的是 Linux,请打开应用程序启动器,在搜索栏中键入 Terminal,然后单击终端图标以打开终端应用程序。

  • 如果使用 macOS,请在 Spotlight 搜索栏中键入 Terminal。然后单击搜索结果中的终端应用程序图标以打开终端。

现在您的终端已打开,我们只需要运行一些 Python 代码来帮助我们在 Docker 上安装 Home Assistant。在运行以下命令之前,请确保您的 Docker 已开始运行。为此,请打开您的 Docker 应用程序。

步骤 1:从 Docker Hub 下载 Home Assistant 容器镜像的最新稳定版本

首先,在您的终端窗口中运行以下代码

docker pull homeassistant/home-assistant

上面的代码是从 Docker Hub 拉取 Home Assistant 容器镜像的最新稳定版本的命令。Docker Hub 是 Docker 镜像的流行容器注册表。

运行代码后,您将获得以下输出

docker-home-assistant

步骤 2:安装并启动 Home Assistant 容器

要安装并启动 Home Assistant 容器,请运行以下命令

docker run -d –name = homeassistant -v your_home_directory:/config –net=host homeassistant/home-assistant
  • docker run -d:docker run 是启动容器的运行命令。-d 表示容器将在分离模式下运行。换句话说,当您忙于终端时,容器在后台运行。

  • –name = homeassistant:这指定容器的名称,在本例中为 homeassistant,您可以使用它在 Docker 命令中引用容器。

  • -v:这为容器设置了一个卷。此 -v 标志后跟您想要存储 Home Assistant 配置文件以及容器目录的目录。因此,我在我的根目录中快速创建了一个名为 homeassistant 的新文件夹。在本例中,我将 your_home_directory 替换为 C:\homeassistant。最终,-v 标志后的完整目录将是 C:\homeassistant:/config

  • –net=host:这会将容器设置为使用主机网络,而不是创建单独的命名空间。

  • homeassistant/home-assistant:这是我们已下载的 Docker 镜像的名称和标签。

完成此步骤后,您将获得以下输出

home-assistant-output

步骤 3:打开您的 Docker 以确认您的 Home Assistant 容器

要确认您已在 Docker 中成功启动 Home Assistant 容器,当您打开 Docker 时,您将在下图中找到类似的输出

home-assistant-container

步骤 4:打开您的 Home Assistant

操作选项卡的正下方是一个三点菜单,如下图所示。单击它。

home-assistant-menu

单击后,您将获得如下图所示的输出结果。单击在浏览器中打开以轻松打开您的网页。

home-assistant-open-browser

太棒了!现在您的 Home Assistant 已经启动并运行,如下所示。现在您可以继续创建帐户了。

home-assistant-create-account

在 Docker 和独立模式下运行 Home Assistant

在 Docker 内部运行 Home Assistant 和作为独立服务运行它之间存在巨大差异。

将 Home Assistant 作为独立服务运行仅表示您已将其直接安装在您的机器上,并且您不需要 Docker 即可运行它。相比之下,在 Docker 上运行 Home Assistant 仅表示您在容器化环境中运行它。换句话说,它与主机系统和其他容器隔离,并且它具有自己所需的已就位的资源。

将 Home Assistant 作为独立程序运行的优点是,它更易于设置和管理,因为软件本身和主机系统将没有额外的抽象层。但是,缺点是它的可移植性较差,并且可能需要更多精力来维护。

在 Docker 上运行 Home Assistant 的优势在于安装和管理过程得到简化。此外,所有必需的资源、依赖项和配置都已在 Docker 镜像中提供。但是,缺点是它可能更难设置。此外,由于容器环境可能与主机系统不同,因此可能更难进行故障排除。

常见问题

以下是在 Docker 上设置 Home Assistant 时遇到的常见问题。

问题 1:Docker 启动时间过长

安装后,您需要启动 Docker 引擎;但是,加载时间过长。要解决此问题,请首先使用管理员权限关闭并重新启动 Docker。然后在您的终端窗口中运行以下代码以启动 Daemon

cd C:\Program Files\Docker\Docker

./DockerCli.exe -SwitchDaemon

问题 2:错误消息“Error During Connect”

可以通过运行上一个问题中的相同命令来解决此错误。

问题 3:不确定您的容器是否已启动并运行

如果在步骤 2 中启动容器后,您不确定您的容器是否已启动并运行,您可以运行以下代码

docker inspect homeassistant

此代码将返回有关您的容器的所有必要信息。

总结

Home Assistant 是一款软件,允许用户控制和自动化家庭设备,例如摄像头、恒温器、灯和传感器。另一方面,Docker 是一个软件平台,允许用户在容器中创建、部署和运行软件,例如 Home Assistant。Docker 使设置软件变得容易,而不会出现主机系统和软件不兼容引起的问题。

为了在 Docker 上启动并运行 Home Assistant,我们通过编写一些代码来使用主机系统的 CLI。以下是在 Docker 上运行 Home Assistant 的步骤

  • 步骤 1:编写代码以从 Docker Hub 下载 Home Assistant 容器镜像的最新稳定版本。

  • 步骤 2:编写代码以安装并启动 Home Assistant 容器。

  • 步骤 3:打开您的 Docker 应用程序以确认您的 Home Assistant 容器。

  • 步骤 4:打开您的 Home Assistant。

关于作者

本文由 Theophilus Onyejiaku 撰写。Theophilus 拥有超过 5 年的数据科学家和机器学习工程师经验。他在数据科学、机器学习、计算机视觉、深度学习、对象检测、模型开发和部署领域积累了专业知识。他撰写了 660 多篇关于上述领域、python 编程、数据分析等的文章。