cloudfared 内网穿透经过docker方式遇到的问题

news/2025/9/29 16:51:41/文章来源:https://www.cnblogs.com/wzzkaifa/p/19119074

参考详细部署:https://blog.csdn.net/qq_44737094/article/details/148779118 后,遇到的问题处理思路如下

要解决 Docker 连接错误  error during connect: Head "...": op  en //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified ,需按以下步骤排查和修复:

步骤 1:确保 Docker Desktop 已启动并运行

Docker 命令行工具( docker )需要依赖 Docker Desktop 的守护进程(Daemon)才能连接。如果 Docker Desktop 未启动,会报“找不到管道文件”的错误。

  • •打开 Docker Desktop 应用(双击桌面图标或从开始菜单启动)。
  • •等待 Docker Desktop 完成初始化(托盘图标变为绿色,表示运行正常)。

步骤 2:验证 Docker 客户端与守护进程的连接

打开新的命令提示符(CMD)或 PowerShell(避免旧终端的环境变量缓存问题),执行以下命令验证连接:

bash docker info

  • •如果输出包含  Containers 、 Images 、 Version 等信息,说明 Docker 客户端已成功连接到守护进程。
  • •如果仍报错,继续下一步排查。

步骤 3:检查 Docker 容器模式(Linux/Windows 容器)

 cloudflared 镜像是基于 Linux的,因此 Docker Desktop 需启用 Linux 容器模式(默认模式)。如果误启用了 Windows 容器模式,会导致连接失败。

  1. 1.打开 Docker Desktop,点击右上角 Settings(设置)
  1. 2.在左侧菜单选择 General,确保勾选 Use the WSL 2 based engine(WSL 2 后端,推荐)或 Use Windows containers(如果强制用 Windows 容器,但  cloudflared 不支持)。
  1. 3.切换到 Resources → WSL Integration,确保你使用的 WSL 发行版(如 Ubuntu)已启用(开关打开)。

步骤 4:重启 Docker Desktop 和终端

Docker 进程可能因异常退出导致连接失败,重启后可解决临时故障:

  1. 1.完全退出 Docker Desktop(右键托盘图标 → Quit)。
  1. 2.等待 5 秒后重新启动 Docker Desktop。
  1. 3.再次打开新的 CMD/PowerShell,执行  docker info 和原始  docker run 命令。

步骤 5:检查环境变量(可选)

如果手动修改过  DOCKER_HOST 环境变量,可能导致连接指向错误的守护进程。需确保变量正确:

  • •在 CMD 中执行  echo %DOCKER_HOST% ,正常输出应为:•Linux 容器模式: //./pipe/dockerDesktopLinuxEngine •Windows 容器模式: npipe:////./pipe/docker_engine 
  • •若变量值异常,执行  set DOCKER_HOST= 清除变量(重启终端后生效)。

步骤 6:重新安装 Docker Desktop(终极方案)

若以上步骤均无效,可能是 Docker Desktop 安装文件损坏。尝试卸载并重新安装:

  1. 1.卸载当前 Docker Desktop(通过控制面板 → 程序和功能)。
  1. 2.从 Docker 官网下载最新版并安装。
  1. 3.安装后启动 Docker Desktop,配置 Linux 容器模式,再次测试  docker info 和  docker run 。

最终验证

完成上述步骤后,重新执行原始命令:

bash docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJhIjoiMWVLZGY2MWE5ZDEwYjM0ODhiMDE0NjJTMzQ0MTI0ZjC3OCIjOiNjVmZkOTUwYS1mNmVjZmVkZWItNmRmNS00ZmI1LTkxYmItNGIxZTdlNGVhN2FkZjE5TWFpNExrUXVhbnRlVjVtZTJjMzEzMmF6Tm1Rd3J9

若命令正常执行(无连接错误),则问题解决。

核心原因:Docker 命令行工具依赖 Docker Desktop 的守护进程,若 Desktop 未启动、容器模式错误或进程异常,会导致“找不到管道文件”的连接失败。优先确保 Docker Desktop 运行且模式正确即可解决。

Docker Desktop 在 Windows 上通过 WSL 2(Windows Subsystem for Linux 2)Hyper-V 两种技术实现容器化功能,两者的核心作用和区别如下:


一、WSL 2 的作用

1. 轻量级 Linux 环境

WSL 2 提供了一个基于 Hyper-V 的轻量级 Linux 子系统,允许在 Windows 上直接运行 Linux 内核,无需完整虚拟机。Docker Desktop 利用 WSL 2 的 Linux 内核运行容器,实现以下功能:

  • 原生 Linux 容器支持:直接运行 Linux 容器(如 Ubuntu、Alpine),无需额外配置虚拟机。
  • 高效资源利用:动态分配 CPU 和内存,启动速度快(秒级),文件系统通过 9p 协议与 Windows 共享。
  • 开发环境集成:支持在 Windows 终端(如 PowerShell、VS Code)中直接操作 Linux 容器,实现跨平台开发。
2. 与 Docker Desktop 的协作
  • 默认后端模式:Docker Desktop 默认使用 WSL 2 作为容器运行时,通过专用发行版  docker-desktop 管理容器引擎。
  • 文件共享优化:容器内可通过  /mnt/c 直接访问 Windows 文件系统,便于开发调试。

二、Hyper-V 的作用

1. 完整虚拟化技术

Hyper-V 是 Windows 的 Type-1 虚拟化平台,可创建独立的虚拟机(VM),每个 VM 拥有完整的操作系统和硬件资源。Docker Desktop 在以下场景依赖 Hyper-V:

  • 传统虚拟机模式:在未启用 WSL 2 时,Docker Desktop 会通过 Hyper-V 创建虚拟机(如 MobyLinuxVM)运行 Docker 引擎。
  • 多系统隔离:支持运行多个虚拟机(如 Windows Server、Linux 发行版),适用于生产环境或需要严格隔离的场景。
2. 与 Docker Desktop 的协作
  • 替代性后端:若禁用 WSL 2,Docker Desktop 可切换到 Hyper-V 模式,但需手动配置虚拟机资源(如 CPU、内存分配)。
  • 高级功能支持:提供虚拟网络、快照、热迁移等企业级功能,适合复杂部署需求。

三、WSL 2 与 Hyper-V 的对比

特性

WSL 2

Hyper-V

虚拟化类型

轻量级(基于 Hyper-V 的 Linux 子系统)

完整虚拟机

资源效率

动态分配,高利用率

固定分配,资源占用较高

启动速度

秒级

分钟级

文件共享

无缝访问 Windows 文件系统( \wsl$ )

需配置共享文件夹或网络存储

兼容性

仅支持 Linux 容器

支持多操作系统(Windows/Linux)

适用场景

开发、测试、轻量级应用

生产环境、多系统隔离、企业级部署


四、如何选择?

  1. 1.优先 WSL 2:•需求:快速启动、高效资源、开发环境。•场景:本地开发、微服务测试、学习容器技术。
  1. 2.切换 Hyper-V:•需求:运行多个虚拟机、严格隔离、企业级功能。•场景:生产服务器部署、跨平台兼容性测试。

五、配置 Docker Desktop 的步骤

  1. 1.启用 WSL 2
 wsl --install
wsl --set-default-version 2
  1. 2.安装 Docker Desktop:•安装时勾选 Use WSL 2 based engine
  1. 3.验证运行状态
  2. bash docker run hello-world


总结

  • WSL 2 是 Docker Desktop 的推荐后端,提供轻量、高效的 Linux 容器运行环境。
  • Hyper-V 适用于需要完整虚拟化或企业级功能的场景。
  • •两者均依赖 Hyper-V 底层技术,但 WSL 2 通过优化显著提升了开发体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CDN + WAF + CLB + Higress 架构下的 TLS 加解密详细解析(适用阿里云)

在云环境中,Web 应用常见架构是:用户 → CDN → WAF → CLB → ECS/Higress本文详细解析 WAF 在网络拓扑中的位置、TLS 加解密流程、回源逻辑,以及自定义接入模式下的注意事项,结合阿里云官方推荐实践。1.WAF 在网…

react useMemo Hook详解

什么是 useMemo Hook? useMemo 是一个 React Hook,用于缓存计算结果,避免在每次组件渲染时重复执行昂贵的计算。它通过记忆计算的值,只有在依赖项变化时才会重新计算,从而优化性能。 简单来说,useMemo 让你的计算…

门户网站改版建议wordpress 调用热门 文章

文章目录 1.liunx简介2.liunx的jdk安装2.liunx的tomcat安装3.liunx的mysql安装4.单机项目部署 1.liunx简介 Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费…

vs2012网站开发济南做网站的网络公司

简介: 淘宝的开放技术目前主要有两种形态,第一种是小程序,第二种是今天的主角小部件。它是基于小程序技术体系,面向标准化、轻量化、高性能的开放卡片场景。本文我们将通过技术设计策略、核心技术设施、业务场景接入、技术演进路线…

网站后台系统有哪些佛山优化企业网站排名平台

实验要求 1、R5为ISP,只能进行IP地址配置,其所有地址均配为公有IP地址。 2、(1)R1和R5间使用PPP的PAP认证,R5为主认证方。 (2)R2与R5之间使用ppp的CHAP认证,R5为主认证方。 &#…

完整教程:Python 编辑器:Visual Studio Code(进阶篇)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Python技能大赛-备赛建议

好的,非常理解您希望得到具体、可行的备赛建议。基于您提供的比赛文件,特别是关于“专业能力模块”的详细要求,我为您梳理了一套系统的备赛策略。 [cite_start]该模块分为 理论知识 (权重10%) 和 实践操作 (权重60%…

公司建设网站产生哪些费用毕设做网站些什么比较简单

一、前言 内部培训会有Word版本题库,考核时如果使用Word、Excel、PDF等文档进行关键字查询题目体验不佳。so,撸个软件吧!   20240728更新:支持更多题库类型。 二、Word题库转Excel 1、Word题库格式要求 内容格式要求事例题目…

怎样提高网站收录上海建设厅网站

文章目录 下载树莓派镜像下载烧写软件烧写编辑设置连接树莓派4B重启ssh查看树莓派IPssh远程连接问询、帮助 下载树莓派镜像 https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit 下载烧写软件 https://www.raspberrypi.com/software/ 烧写 编辑…

【软件系统架构】系列七:系统性能——操作系统性能深入解析 - 实践

【软件系统架构】系列七:系统性能——操作系统性能深入解析 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

你的下一款定位神器,何必是GPS?Nordic带你解锁Wi-Fi SSID的隐藏潜能

随着 nRF7000 Wi-Fi 协同 IC 的推出,我们现在可以提供具有 Wi-Fi、蜂窝物联网和 GNSS 功能的完整硅到云定位解决方案。nRF7000 针对 Wi-Fi 网络扫描进行了优化,与 nRF91 系列蜂窝物联网模组配合使用,可实现基于 SSI…

CF407E k-d-sequence 题目分析(0929模拟赛最后一题)

首先特判 $d=0$ 的情况。好,对于 $d\geq 1$ 的情况考虑转化。注意到等差序列满足: - 模 $d$ 同余。 - 值两两不同。我们先把 $a$ 变为正数,然后全部除以 $d$,这肯定是正确的,你可以想一想。那么我们就全部转化为了…

vue3踩坑:静态dom无法初始化渲染 - 父组件props与侦听器的交互

vue3踩坑:静态dom无法初始化渲染 -> 父组件props与侦听器的交互今天遇到一个没有渲染dom的问题,原因是父组件如果传递的是未被ref或reactive包裹的静态值,那么传递到子组件中被watch包裹,即使深监听也不会触发响…

Linux 生成随机端口

shuf -i 40000-55535 -n 1作者:Outsrkem原文链接:https://www.cnblogs.com/outsrkem/p/19119039本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法…

门户网站的门户思维有什么特点网站开发软件有哪

上一篇博客链接: 机器学习与建模中 - 判断数据模型拟合效果的三种方法 在上一篇博客中,我们谈到了使用损失函数来判断模型的拟合效果。但是拟合效果比较好的模型不一定是最好的模型,建模的最终目的是为了预测,因此预测最精准的模…

做网站dreamwa怎样做网站优化

西安理工大学2019年硕士研究生拟录取名单考生编号 姓名 备注107009061360689 王帅 101 材料科学与工程学院 080501 材料物理与化学107009061360690 左稼暄 101 材料科学与工程学院 080501 材料物理与化学107009061360735 陈瑶 101 材料科学与工程学院 080501 材料物理与化学107…

Mysql DBA学习笔记(客户端常用工具) - 教程

Mysql DBA学习笔记(客户端常用工具) - 教程2025-09-29 16:30 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

MATLAB 中 dsp.FFT 系统对象:从原理到实践的完整指南

在 MATLAB 信号处理领域,快速傅里叶变换(FFT)是分析信号频域特性的核心工具。除了基础的 fft 函数,DSP System Toolbox 提供的 dsp.FFT 系统对象,凭借“一次配置、多次复用”的特性,成为重复执行 FFT 运算(如实…

并发编程可见性

并发编程可见性一句话定义 可见性就是当一个线程修改了某个共享变量,其他线程能够立马看到这个最新变化的结果。 理解过程 #内存模型 核心点:CPU的内存模型、硬件的MESI、JIT指令冲排序 存数据:多核CPU的架构下,计…

C# Devexpress GridControl实现全选功能(转载,记录)

1.添加选择框 gridcontrol控件,点击 Run Designer-->Views-->OptionSelection-->MultiSelectMode-->CheckBoxRowSelect; 2.获取选中项 int[] rownumber = this.gridView1.GetSelectedRows();//获取选中行…