docker WSL2 DDEV启动问题(来自守护程序的错误响应:端口不可用)

y1aodyip  于 2023-04-20  发布在  Docker
关注(0)|答案(2)|浏览(240)

我的DDEV出现问题。我正在运行Docker Desktop 4.13.1、DDEV 1.21.3、WSL 2和Windows 11。在将Docker Desktop 4.18.0更新到1.21.6并将DDEV更新到1.21.6后,我遇到了端口问题。
有几种情况,但在每种情况下,my-site.ddev.site页面都不起作用。

**第一种情况:**我设置的端口:

router_http_port: "80"
router_https_port: "443"

错误:

Error response from daemon: Ports are not available: exposing port TCP 127.0.0.1:443 -> 0.0.0.0:0: listen tcp 127.0.0.1:443: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
Failed to start my-site: failed to start ddev-router: ComposeCmd failed to run 'COMPOSE_PROJECT_NAME=ddev-my-site docker-compose -f /home/hp/.ddev/.router-compose-full.yaml -p ddev-router up -d', action='[-p ddev-router up -d]', err='exit status 1', stdout='', stderr='Container ddev-router Creating
Container ddev-router Created
Container ddev-router Starting
Error response from daemon: Ports are not available: exposing port TCP 127.0.0.1:443 -> 0.0.0.0:0: listen tcp 127.0.0.1:443: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.'

**第二种情况:**当我将端口更改为:

router_http_port: "8000"
router_https_port: "8443"

DDEV启动,但当我转到my-site.ddev.site页面时,Chrome(和其他浏览器)返回一个错误:my-site.ddev.site服务器意外终止了连接。
我尝试手动将127.0.0.1my-site.ddev.site添加到hosts文件(C:\Windows\System32\drivers\etc\hosts),但不幸的是,它不起作用。

127.0.0.1 my-site.ddev.site

我将Docker从4.18.0降级到4.13.1,DDEV从1.21.6降级到1.21.3,但这并没有帮助。
我还尝试使用以下方法在端口443和80上启动DDEV项目:

Win11 PowerShell net stop winnat
WSL2 ddev start
Win11 PowerShell net start winnat

但那也没用
我也试过:

netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns

而且它也没有任何作用。我已经尝试了很多方法,但没有一个我尝试过的工作。我上面写的是我在网上找到的最常见的解决方案。
不幸的是ChatGPT也不知道任何合理的解决方案。

disbfnqx

disbfnqx1#

WSL 2在最近的升级中经历了一些艰难的时期,听起来你有一些这样的经历。
请看https://github.com/ddev/ddev/issues/4809
https://github.com/ddev/ddev/issues/4573
你可能想考虑从Docker Desktop迁移到Docker-inside-WSL 2,但我不确定这会影响这些问题。如果你这样做,请确保你有数据库转储或快照。

ocebsuys

ocebsuys2#

将WSL2更新到预发布版并重新安装DDEV很有帮助。解决方案:

wsl --update --pre-release
sudo apt-get remove ddev && sudo apt-get install ddev

相关问题