带有 ssl 的 Portainer 仅在端口 443 上工作而不在 80 上工作

Portainer with ssl working only on port 443 and not on 80

我按照 this pagehttpshttp 上设置了 portainer :

openssl req -new -newkey rsa:4096 -days 3650 -nodes -x509 -keyout ~/local-certs/portainer.key -out ~/local-certs/portainer.crt

docker run -d -p 443:9000 -p 80:8000 \
    --name portainer --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    -v ~/local-certs:/certs \
    portainer/portainer-ce:2.6.3 --ssl --sslcert /certs/portainer.crt --sslkey 
    /certs/portainer.key

它适用于 https 和端口 443,但是如果我尝试 http(因此,端口 80),我只会得到一个空白页面,其中包含文本“未找到”。

看起来您的端口映射被打乱了。要将 Portainer 的 app-UI/webserver 端口映射到 docker 主机上的标准 http (80) 和 https (443) 端口,您需要: -p 80:9000 -p 443:9443

设置说明 docker 命令显示 container-port 8000 已映射,但该页面上没有关于端口 8000 的用途或映射到 [=22= 的原因的信息] 主机,所以我敢打赌很多人认为它应该是 Portainer 应用程序的 non-ssl 端口。但是,这实际上是在端口 9000 上(顺便说一句,在设置说明页面上也有注明)。参见:https://docs.portainer.io/v/ce-2.11/start/install/server/docker/linux

如果您对端口 8000 感兴趣,请参阅:https://docs.portainer.io/v/be-2.10/advanced/edge-agent