Docker Host模式下Plex容器无法获取网络连接求助
Host模式下Plex容器无法获取网络连接的排查与解决
问题场景
Ubuntu 22.04系统中以host模式创建Plex容器,容器能正常启动但无网络连接。已刷新iptables并通过ufw开放32400端口,但docker ps无端口映射信息,docker inspect显示健康检查时连接localhost:32400被拒绝。
命令输出
docker ps 执行结果:
~$docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9b30e966f0df plexinc/pms-docker "/init" 6 hours ago Up 6 hours (unhealthy) plex
docker inspect plex 健康检查片段:
"Health": { "Status": "starting", "FailingStreak": 2, "Log": [ { "Start": "2023-08-21T11:33:29.030426144-04:00", "End": "2023-08-21T11:33:29.160688826-04:00", "ExitCode": 1, "Output": "curl: (7) Failed to connect to localhost port 32400: Connection refused\n" } ] }
所用Docker Compose配置文件:
version: "2.20" services: plex: container_name: plex image: plexinc/pms-docker restart: unless-stopped network_mode: host environment: - TZ= ”America/New_York” - HOSTNAME= "plexmediaserver" - PLEX_CLAIM= ”claim-ZpdRxxxxxxxxjnAR” - ADVERTISE_IP="http://192.168.1.25:32400/" volumes: - /mnt/vmstation/Plex/PlexData/PMS:/config - /mnt/vmstation/Plex/Transcode:/transcode - /mnt/vmstation/Plex/Media:/data
排查与解决步骤
修复环境变量语法错误
配置文件中TZ和PLEX_CLAIM使用了中文引号,会导致变量解析失败;HOSTNAME和ADVERTISE_IP存在多余空格,调整后如下:environment: - TZ="America/New_York" - HOSTNAME="plexmediaserver" - PLEX_CLAIM="claim-ZpdRxxxxxxxxjnAR" - ADVERTISE_IP="http://192.168.1.25:32400/"检查宿主机端口占用
Host模式下容器直接使用宿主机网络,先确认32400端口是否被其他进程占用:sudo lsof -i :32400如有占用,停止对应进程后重启Plex容器。
补全UFW端口规则
Plex部分功能依赖UDP端口,仅开放TCP不够,执行以下命令补全规则并重载UFW:sudo ufw allow 32400/tcp sudo ufw allow 32400/udp sudo ufw reload配置iptables规则
Host模式下Docker不会自动配置iptables,手动添加端口允许规则并保存:sudo iptables -A INPUT -p tcp --dport 32400 -j ACCEPT sudo iptables -A INPUT -p udp --dport 32400 -j ACCEPT sudo iptables-save | sudo tee /etc/iptables/rules.v4检查容器启动日志
查看容器详细日志,排查是否存在配置目录权限、媒体挂载异常等问题:docker logs plex修复配置目录权限
Plex容器默认以UID/GID为977的plex用户运行,给宿主机配置目录设置对应权限:sudo chown -R 977:977 /mnt/vmstation/Plex/PlexData/PMS
内容的提问来源于stack exchange,提问作者Rocky
相关产品推荐
相关产品推荐

