我理解 Docker 的概念。但是,我无法通过 Mac Mini(带有 M2 芯片)让 Home Assistant 在 Docker 中运行。目前,我有以下情况:
Dockerfile
# Start the home assistant base image
FROM homeassistant/home-assistant
# Open a port to
EXPOSE 3001
然后我运行docker build --tag home-assistant .
。此方法成功创建了一个名为“home-assistant”的镜像。当我尝试运行该镜像时,系统提示我输入端口号,因此我选择“0”。系统提示我容器已成功启动。但是,当我访问 Docker Desktop 中提供的 URL 时,我只看到一个网页,上面写着:“此页面无法正常工作”
我究竟做错了什么?
答案1
不要使用端口零,请尝试 12345 之类的端口
0 到 1023(0 到 210 − 1)范围内的端口号是众所周知的端口或系统端口。[3] 它们由提供广泛使用的网络服务的系统进程使用。在类 Unix 操作系统上,进程必须以超级用户权限执行,才能使用其中一个众所周知的端口将网络套接字绑定到 IP 地址。
有关详细信息,请参阅此维基百科文章
https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
答案2
这是我尝试过的并且有效
- 创建此文件
Makefile
.PHONY: run test
run:
docker run --rm -d \
--name=homeassistant \
-h homeassistant \
-e PUID=1001 \
-e PGID=1001 \
-e TZ=America/New_York \
-p 8123:8123 \
-v homeassistant:/config \
homeassistant/home-assistant:stable
test:
curl -sI http://0.0.0.0:8123/onboarding.html | grep Server
- 运行 docker 镜像
make run
- 检查服务器是否正在运行
curl -sI http://0.0.0.0:8123/onboarding.html | grep Server
Server: Python/3.11 aiohttp/3.8.4
- 在浏览器中打开 UI