Docker在localhost上无法访问,但在www.example上运行良好 www.example.com

kxxlusnw  于 2023-04-29  发布在  Docker
关注(0)|答案(3)|浏览(224)

在工作了至少一个月之后,我再也不能通过localhost访问docker容器了。
复制:

  • 确认端口80上没有运行任何东西;http://localhost和http://127.0.0.1都返回Connection Refused
  • 打开命令提示符并运行docker run -dp 80:80 docker/getting-started
  • http://localhost仍然返回拒绝连接,但http://127.0.0.1现在重定向到http://127.0.0.1/tutorial/并显示docker教程页面

我不知道该怎么补救。这里的答案似乎都解决了docker-compose或docker run中的配置错误,或者是涉及跨容器通信的一些复杂问题。
我已经尝试过system prune --all --volumes --forcehosts文件没有任何变化。
部分版本号:

  • Windows 11:22000.675*
  • Docker Desktop:4.8.2(79419)*
  • 发动机:20。10.14*
xnifntxz

xnifntxz1#

卸载Docker Desktop,重新启动,安装Docker Desktop并重新启动后,问题现在已经自行解决。

v440hwme

v440hwme2#

这通常是容器或Docker引擎没有处理ipv6请求的标志。请注意,集群入口网络不支持ipv6(您可以通过在主机模式下推送端口来解决这个问题,这与主机网络不同,主机上发布的端口只能在运行容器的主机上访问)。
你要么需要跟踪docker和app堆栈的哪一部分只在ipv4上侦听,要么将localhost的/etc/host条目更改为指向 www.example.com 。在应用程序中,这可能是听www. example www.example.com ,在类似127的东西上发布端口。0.0.1:80,或者在Docker引擎中不启用IPv6。

huwehgph

huwehgph3#

当你安装Docker时,它修改了你的hosts文件以指向它自己。把它改回来。
在Windows上,hosts文件位于%SystemRoot%\System32\drivers\etc\hosts

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal  # <-- comment this line out

相关问题