我正在运行服务器,我通过cloudflare将我的域名指向我的服务器IP,并通过LetsEncrypt为我的域名签署了SSL证书 . 我的服务器使用porto 443为ssl流量运行apache webserver . 我安装了docker并运行了几个容器 . 我的目标是使用端口443启动并运行traefik,并通过它路由所有docker流量 . 这甚至可能吗?
我在这里使用了这个:https://www.linuxserver.io/2018/02/03/using-traefik-as-a-reverse-proxy-with-docker/来编写我的traefik.toml文件和我的docker-compose文件 .
但是,每当我启动docker-compose时,除了traefik之外,所有服务都会启动 . 我收到以下错误:
错误:for traefik无法启动服务traefik:驱动程序无法在 endpoints traefik上编程外部连接(2d10b64b47e62e7dcb5f94265529fb647e4ba62dbeeb43c201ea02d39f60b381):启动userland代理时出错:listen tcp 0.0.0.0:443:bind:地址已在使用错误:启动项目时遇到错误 .
我想知道原因是我已经使用端口443作为我的域名了吗?!我怎样才能解决这个问题?
谢谢你的帮助!
1 回答
您在Linux中使用docker:
其中一些命令应该为您提供使用它们的线索:
例:
如果443被docker占用......这意味着你在某些YML中有一个暴露的端口443,除了Traefik之外(如果是其他应用程序继续更改端口或关闭它[pkill])
您可以尝试在不同的YML中分离YML的"Services"并逐个打开它们,以便找到导致冲突的图像(如果将它们分开,请记住创建适当的外部“Networks” . )
(顺便说一句......我建议第一个图像开始是traefik之一)
(您也可以复制并粘贴YML文件以获得更好的帮助 . )
编辑
edit2 in toml config traefik :(我不知道什么有效,试试吧)
我遇到的另一个解决方案是将你的主apache作为代理隧道,但是你不需要带来traefik:P