我正在尝试使用docker设置Plex服务器。我已经按照LinuxServer.io docker页面上的步骤进行了操作。当我运行docker命令时,它说它正在运行find,我没有得到任何错误。但是,当我尝试通过localhost:32400/web
访问Web UI时,得到的只是“加载页面有问题”
我正在使用Docker for Windows和Linux容器。
docker命令:
docker run -d --name=plex --net=host -e PUID=1000 -e PGID=1000 -e TZ=Europe/London -e VERSION=docker -v D:\plex\config:/config -v D:\media\tvseries:/data/tvshows -v D:\media\movies:/data/movies -v D:\media\transcode:/transcode --restart unless-stopped linuxserver/plex
当我使用docker ps
时,plex容器看起来像是在运行。
我是Docker的新手。我已经环顾四周,找不到为什么我不能访问用户界面。
请我知道如果你需要更多的信息。
docker检查:
"NetworkMode": "host",
"PortBindings": {
"32400/tcp": [
{
"HostIp": "",
"HostPort": "32400"
}
]
},
如果你需要更多的信息,请告诉我
2条答案
按热度按时间vsmadaxz1#
--net=host
不适用于docker-for-windows
。理由:
Linux容器需要共享一个Linux主机的内核。
为了实现这一点,当docker for windows运行一个linux容器时,它必须设置一个hyper-v机器。如果打开Hyper-V管理器,您将看到
MobyLinuxVM
正在运行。因此,当您使用
--net=host
时,容器将只使用MobyLinuxVM
的网络,而不是Windows。所以localhost
不会工作。建议:
对于您的场景,我建议您删除
--net=host
,在命令行中添加端口Map:然后,神奇的事情发生了,docker for windows会使用windows路由机制将windows的32400端口Map到你的容器。您可以从windows访问容器的服务。
j1dl9f462#
当我在windows的docker上使用here提供的docker-compose文件时,我遇到了完全相同的问题。根据前面的答案,我从文件中删除了
network_mode: host
条目,并从包含docker-compose.yml
文件的同一目录运行了docker compose up -d
命令,它启动得很好。然后,我能够使用主机IP(我的Windows机器IP地址)以及本地主机没有问题,如下所示
http://<machine-ip i.e. hostip>:32400/web
或http://localhost:32400/web
这里是我的
docker-compose.yml
文件