如何为host网络模式的Docker容器添加快捷访问入口?
问题描述在使用 Docker 项目部署容器时,系统会通过 ports 字段自动识别容器访问端口,并在容器的【快捷访问】中显示服务入口。但当容器使用 network_mode: host 模式时,系统默认无法识别快捷访问。本教程将介绍如何在 host 模式下正确配置 ports 字段,使项目的容器支持快捷访问显示。
原因分析
在默认的 bridge 网络模式中,ports 字段用于端口映射,系统依赖此字段识别快捷访问入口。但在 host 模式下,端口映射实际无效,因此需要添加 ports 字段,让系统识别端口。例如在以下 docker-compose 配置中,Jellyfin 使用了 network_mode: host,但没有 ports 字段,系统无法为其生成快捷访问入口。services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
tty: true
restart: always
devices:
- /dev/dri:/dev/dri
volumes:
- ./config:/config
- ./cache:/cache
network_mode: host解决方案
1. 在 host 模式下,我们可以在项目的 compose 配置中添加 ports 字段来让系统识别服务端口。services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
tty: true
restart: always
devices:
- /dev/dri:/dev/dri
volumes:
- ./config:/config
- ./cache:/cache
network_mode: host
ports:
- "8096:8096"# 端口供系统识别快捷访问入口2. 添加后重新部署项目后,在项目的容器中可以识别快捷访问入口。
注意事项
● 如果你不确定容器的访问端口,请前往该容器镜像的官方文档或教程页面中查看端口信息。● 使用 端口:端口 格式:必须写成 "8096:8096",与实际访问端口一致。● 禁止写成 8888:8096:系统无法正确识别,会导致无法访问。● host 模式下不会真正执行端口映射,仅用于“快捷访问”入口识别。● 仅使用项目(Compose)方式创建的容器,host 网络模式下才支持识别快捷访问入口;通过 Docker 容器面板直接创建的 host 模式容器不支持该功能。
页:
[1]