Windows虚拟系列(亲测有效):win10安装docker教程、常见问题和原理总结

本文详细介绍了在Windows 10上安装Docker的完整过程,包括注册Docker账号、配置BIOS中的虚拟化技术、启用Hyper-V,以及解决安装过程中可能出现的如Docker Engine停止、启动转圈等问题。同时,文章还深入探讨了Docker的基本概念、工作流程和原理,帮助读者理解Docker如何在系统中运行。

win10安装docker教程、常见问题和原理总结

前言

win10下安装docker教程;
其中记录安装过程中初心的问题和解决问题方法。
详细记录了docker安装整个过程,适合新手小白,那就开始吧!

一、Docker是什么?

在这里插入图片描述

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。

Docker通常应用场景:

  1. web应用的自动化打包和发布;

  2. 自动化测试和持续集成、发布;

  3. 在服务型环境中部署和调整数据库或其他的后台应用;

  4. 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

准备开始

Docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。

为什么要引入docker?

现代软件开发的一大目的就是隔离,应用程序在运行时相互独立互不干扰,这种隔离实现起来是很不容易的,其中一种解决方案:虚拟机技术,通过将应用程序部署在不同的虚拟机中从而实现隔离。

在这里插入图片描述
但是虚拟机技术有占用资源、启动时间慢等缺点,那么容器技术又怎么样呢?
与虚拟机通过操作系统实现隔离不同,容器技术只隔离应用程序的运行时环境但容器之间可以共享同一个操作系统,这里的运行时环境指的是程序运行依赖的各种库以及配置。

在这里插入图片描述

从图中我们可以看到容器更加的轻量级且占用的资源更少,与操作系统几G的内存占用相比,容器技术只需数M空间,因此我们可以在同样规格的硬件上大量部署容器,这是虚拟机所不能比拟的,而且不同于操作系统数分钟的启动时间容器几乎瞬时启动,容器技术为打包服务栈提供了一种更加高效的方式。

docker基本概念

Docker包括三个基本概念:
  • l 镜像(Image)

  • l 容器(Container)

  • l 仓库(Repository)

理解了这三个概念,就理解了 Docker 的整个生命周期。

简单的把image理解为可执行程序,container就是运行起来的进程。

那么写程序需要源代码,那么“写”image就需要dockerfile,dockerfile就是image的源代码,docker就是"编译器"。

镜像Image Docker镜像就是一个只读的模板。

例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。

镜像可以用来创建Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

容器Container Docker利用容器来运行应用。

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

*注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

仓库Repository

仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。 国内的公开仓库包括Docker Pool等,可以提供大陆用户更稳定快速的访问。

当然,用户也可以在本地网络内创建一个私有仓库。

当用户创建了自己的镜像之后就可以使用push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

*注:Docker 仓库的概念跟 Git 类似,注册服务器可以理解为GitHub 这样的托管服务。

docker工作流程

实际上docker使用了常见的CS架构,也就是client-server模式,docker client负责处理用户输入的各种命令,比如docker build、docker run,真正工作的其实是server,也就是docker demon,值得注意的是,docker client和docker demon可以运行在同一台机器上。

接下来我们用几个命令来讲解一下docker的工作流程:

1,docker build

当我们写完dockerfile交给docker“编译”时使用这个命令,那么client在接收到请求后转发给docker daemon,接着docker daemon根据dockerfile创建出“可执行程序”image。
在这里插入图片描述

2,docker run

有了“可执行程序”image后就可以运行程序了,接下来使用命令docker run,docker daemon接收到该命令后找到具体的image,然后加载到内存开始执行,image执行起来就是所谓的container。

在这里插入图片描述

3,docker pull

其实docker build和docker run是两个最核心的命令,会用这两个命令基本上docker就可以用起来了,剩下的就是一些补充。
这个命令的实现也很简单,那就是用户通过docker client发送命令,docker daemon接收到命令后向docker registry发送image下载请求,下载后存放在本地,这样我们就可以使用image了。
在这里插入图片描述

docker原理:

首先Docker是基于Go语言进行开发的,而且是基于C/S结构进行工作的:
在这里插入图片描述

从图中可以看出:
(1)用户是使用Docker Client与Docker Daemon建立通信,并发送请求给后者;
(2)Docker Daemon作为Docker架构中的主体部分,首先提供Server的功能使其可以接受Docker Client的请求;而后Engine(引擎)执行Docker内部的一系列工作,每一项工作都是以一个Job的形式存在;
(3)Job的运行过程中,当需要容器镜像时,则从Docker Registry(docker仓库)中下载镜像,并通过graphdriver(镜像管理驱动)将下载镜像以Graph(图像)的形式存储;当需要为Docker创建网络环境时,通过networkdriver(网络管理驱动)创建并配置Docker容器网络环境;当需要限制Docker容器运行资源或执行用户指令等操作时,则通过execdriver(执行管理驱动)来完成。
(4)libcontainer(容器库)是一项独立的容器管理包,networkdriver以及execdriver都是通过libcontainer来实现具体对容器进行的操作。当执行完运行容器的命令后,一个实际的Docker容器就处于运行状态,该容器拥有独立的文件系统,独立并且安全的运行环境等。

各个模块的功能
(1)docker client
docker client是docker架构中用户用来和docker daemon建立通信的客户端,用户可以通过docker命令行工具发起众多管理docker container的请求。

docker client发送容器管理请求后,由docker daemon接受并处理请求,当docker client接收到返回的请求相应并简单处理后,docker client一次完整的生命周期就已经结束了。

(2)docker daemon
docker daemon 是docker架构中一个常驻在后台的系统进程,功能就是:接收处理docker client发送的请求。该守护进程在后台启动一个server,server负载接受docker client发送的请求;接受请求后,server通过路由与分发调度,找到相应的handler(处理器)来执行请求。

(3)docker server
 docker server在docker架构中是专门服务于docker client的server,该server的功能就是:接受并调度分发docker client发送的请求。

(4)engine
Engine是Docker架构中的运行引擎,同时也Docker运行的核心模块。它扮演Docker container存储仓库的角色,并且通过执行job的方式来操纵管理这些容器。

(5)job
一个Job可以认为是Docker架构中Engine内部最基本的工作执行单元,Docker可以做的每一项工作,都可以抽象为一个job。

(6)docker registry
Docker Registry是一个存储容器镜像的仓库。而容器镜像是在容器被创建时,被加载用来初始化容器的文件架构与目录。

(7)Graph
Graph在Docker架构中扮演已下载容器镜像的保管者,以及已下载容器镜像之间关系的记录者。一方面,Graph存储着本地具有版本信息的文件系统镜像,另一方面也通过GraphDB记录着所有文件系统镜像彼此之间的关系。

(8)driver
Driver是Docker架构中的驱动模块。通过Driver驱动,Docker可以实现对Docker容器执行环境的定制。由于Docker运行的生命周期中,并非用户所有的操作都是针对Docker容器的管理,另外还有关于Docker运行信息的获取,Graph的存储与记录等。因此,为了将Docker容器的管理从Docker Daemon内部业务逻辑中区分开来,设计了Driver层驱动来接管所有这部分请求。

在Docker Driver的实现中,可以分为以下三类驱动:

graphdriver主要用于完成容器镜像的管理,包括存储与获取。即当用户需要下载指定的容器镜像时,graphdriver将容器镜像存储在本地的指定目录;同时当用户需要使用指定的容器镜像来创建容器的rootfs时,graphdriver从本地镜像存储目录中获取指定的容器镜像;
networkdriver的用途是完成Docker容器网络环境的配置,其中包括Docker启动时为Docker环境创建网桥;Docker容器创建时为其创建专属虚拟网卡设备;以及为Docker容器分配IP、端口并与宿主机做端口映射,设置容器防火墙策略等;
execdriver作为Docker容器的执行驱动,负责创建容器运行命名空间,负责容器资源使用的统计与限制,负责容器内部进程的真正运行等。在execdriver的实现过程中,原先可以使用LXC驱动调用LXC的接口,来操纵容器的配置以及生命周期,而现在execdriver默认使用native驱动,不依赖于LXC。具体体现在Daemon启动过程中加载的ExecDriverflag参数,该参数在配置文件已经被设为”native”;

(9)libcontainer
libcontainer是Docker架构中一个使用Go语言设计实现的库,设计初衷是希望该库可以不依靠任何依赖,直接访问内核中与容器相关的API。正是由于libcontainer的存在,Docker可以直接调用libcontainer,而最终操纵容器的namespace、cgroups、apparmor、网络设备以及防火墙规则等。

(10)docker container
Docker container(Docker容器)是Docker架构中服务交付的最终体现形式。Docker按照用户的需求与指令,订制相应的Docker容器。用户通过指定容器镜像,使得Docker容器可以自定义rootfs等文件系统; 用户通过指定计算资源的配额,使得Docker容器使用指定的计算资源; 用户通过配置网络及其安全策略,使得Docker容器拥有独立且安全的网络环境; 用户通过指定运行的命令,使得Docker容器执行指定的工作。

二、win10上安装docker

注册docker账号

配置虚拟化

启用 bios 虚拟化,是否已启用可以通过任务管理器查看
在这里插入图片描述

如果没有启动请看,否则可以直接跳到2开启 Hyper-V进行后续操作:
irtualization Technology(VT),中文译为虚拟化技术,英特尔(Intel)和AMD的大部分CPU均支持此技术,名称分别为VT-x、AMD-V。VT开启之后对虚拟机,比如VMware、海马玩/靠谱助手等安卓模拟器的性能有非常大的提高。

BIOS开启VT指南
一、进入BIOS

参考以下按键,开机时按住对应的键进入BIOS:
组装机以主板分,华硕按F8、Intel按F12,其他品牌按ESC、F11或F12;
笔记本以品牌分,联想ThinkPad系列按F1,其他品牌按F2;
品牌台式机按品牌分, Dell按ESC,其他按F12;
如果仍然不能进入BIOS,找找电脑(主板)说明书或者参考BIOS设置怎么进入图解教程。

二、开启VT
1、Phoenix BIOS机型

(1)进入BIOS,选择Configuration选项,选择Intel Virtual Technology并回车。注意:若无VT选项或不可更改,则表示你的电脑不支持VT技术。
在这里插入图片描述
(2)将光标移动至Enabled处,并回车确定。

在这里插入图片描述
(3)此时该选项将变为Enabled,最后按F10热键保存并退出即可开启VT功能。

在这里插入图片描述

2、Insyde BIOS机型

(1)进入BIOS,选择Configuration选项,选择Intel Virtual Technology并回车。

在这里插入图片描述

(2)将光标移动至Enabled处,并回车确定。

在这里插入图片描述
(3)此时该选项将变为Enabled,最后按F10热键保存并退出即可开启VT功能。

在这里插入图片描述
再资源管理器中再查看一次,显示已经启用则开始后续操作。

开启 Hyper-V

在这里插入图片描述

如果是家庭中文版则没有,请往下看,慎重操作,有可能会造成蓝屏闪屏闪退循环电脑重启之后显示无法更新配置撤销更改

但我这win10上没有Hyper-V别慌,若是你也没有我们来下载Hyper-V。
找了很久没有找到教程,终于找到了这个宝藏博客

Hyper-V是Windows自带的虚拟机产品,用的还挺顺手。但是在win10家庭版木有Hyper-V,这让人很DT,如果你和我一样DT,那请看下面的教程。
在这里插入图片描述

如果发生闪退
not enough space for thread data

windows media player 占用了太多的缓冲,将“媒体库”下的音频,视频都删掉。

没有文件扩展“.js”的脚本引擎

现象:
双击.js文件时,系统弹出提示:没有文件扩展“.js”的脚本引擎。

原因:
系统安装Dreamwear、UltraEdit、EditPlus后修改了.js文件的默认打开方式。当想直接执行js脚本时就会出现此错误。

解决办法:
打开注册表编辑器,定位[HKEY_CLASSES_ROOT.js]这一项,双击默认值将其改为“JSFile”即可。

如果你在运行一个命令的时候,系统给出提示“** 不是内部或外部命令,也不是可运行的程序或批处理文件”,出现这种情况

1.一般是因为c:\windows \system32文件夹下缺少对应的exe或com文件,去网上下载一个,放在c:\windows\system32文件夹下即可让命令正确执行。

(例如:‘ipconfig’ 不是内部或外部命令,也不是可运行的程序或批处理文件。——解决:下载一个ipconfig.exe放在c:\windows\system32,再次使 用该命令就可以正常运行)

2.特殊原因:系统环境变量被修改了。

恢复办法如下: 我的电脑–属性–高级–环境变量–系统变量 将名为“path”的变量值,双击修改为: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem 重启电脑后生效。

windows下显示中文为乱码

原因:
这个问题是因为把系统语言改为英语后,语言设置的非Unicode设置出问题而导致的,因为中文不是Unicode语言,所以才会乱码,设置一下非Unicode的语言为中文就可以解决这个问题了。

解决办法:
打开“控制面板”,点“更改显示语言”,点“更改系统区域设置”,选择“中文(简体,中国)”。

在Windows环境下将UltraEdit32加入右键快捷菜单
1.打开注册表管理器:

2.在HKEY_CLASSES_ROOT/*/shell下建立新项Edit with UltraEdit-32(右键显示的项的名称,可随便取)

3.在Edit with UltraEdit-32下建立新项command,双击“默认”将其值设置为“uedit32.exe绝对路径+空格+%1”

如:C:/Program Files/IDM Computer Solutions/UltraEdit-32/uedit32.exe %1

4.文本类型文档右键即出现Edit with UltraEdit-32项!




教程正式开始

1. 将如下代码添加到记事本中,并另存为Hyper-V.cmd文件
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
2. 我们找到Hyper-V.cmd文件图标,在右键菜单中点击:以管理员身份运行

在这里插入图片描述

3. 然后弹出一个 用户帐户控制 - Windows命令处理程序 对话框,我们点击:是
4.然后系统自动进行Windows命令处理,我们等待处理完成以后,【这个过程中不要关闭窗口或者关机】在最末处输入:Y,电脑自动重启,进行配置更新

在这里插入图片描述

5. 电脑重启之后,在window管理工具中可以看到已经成功安装了Hyper-V。这样就可以在不用重装专业版系统的情况下,使用Hyper-V虚拟机了

在这里插入图片描述

在这里插入图片描述

6. 如果在window管理工具里没有看到,进行如下操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

下载安装docker

到这就好了,我们准备工作就完成,现在开始我们安装Docker

官网链接直接附上Install Docker Desktop on Windows | Docker Documentation官网下载地址

下载后直接Next安装就完事;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完需要重启电脑,待重启结束后,docker会自动运行。我们看一下docker是否成功启动。如果看到下面的界面,则证明一切正常。

在这里插入图片描述

docker问题

1. 启动Docker服务后显示Docker Engine stopped

在这里插入图片描述

重新启动Docker服务:打开Windows服务管理器(可以在开始菜单中搜索),找到"Docker Desktop Service"或类似命名的服务,右键单击并选择"重启"。稍等片刻,看看是否重新启动成功

如果一直重启不成功,直接重启Windows即可

2. Starting the Docker Engine 一直转圈

在这里插入图片描述

1、检查CPU是否开启虚拟化

开启任务管理器查看
在这里插入图片描述
在这里插入图片描述

2、检查Hyper-v是否开启

在这里插入图片描述

3、关闭Docker 服务,再重新启动Docker服务
net stop com.docker.service
net start com.docker.service
4. .检查右上角是否登录账号。若非,登录一下。

在这里插入图片描述

如第二张图,右上角有用户名即为登陆成功。

如果还是不行,重启电脑重新打开试一试。

重启电脑后,我出现了如下问题:

在这里插入图片描述

Windows containers not supported.解决思路如下:

(1)检查是否为windows内部版本过低问题,常见于win10系统,win11一般不会出现。

在这里插入图片描述
(2)修改对应的json配置文件。我的路径是:C:\Users\97476\AppData\Roaming\Docker\settings.json,其中“97476”需要换成你自己的电脑。

将其中的“useWindowsContainers"里的值由true改为false。

在这里插入图片描述

大功告成!
在这里插入图片描述

5. 还是不行

在这里插入图片描述

猜想这和之前ubuntu22.02有关

在这里插入图片描述
在这里插入图片描述

于是启用或关闭Windows功能上 关闭 适用于Linux的Windows系统

在这里插入图片描述
于是启用或关闭Windows功能上 打开 适用于Linux的Windows系统

虽然还是一样,但是先把Ubuntu22.02 TLS 解决掉在来看这个问题吧

这里等于把之前的ubuntu卸载了,相关命令查看 windows虚拟系列:WSL 命令简单总结

wsl --unregister Ubuntu-22.04

为了以防万一,把另外一个也卸载了

wsl --unregister Ubuntu-20.04

在这里插入图片描述
重启计算机,然后查看 WSL 下 有哪些

wsl -l

刚开始什么都没有,打开docker-desktop,可见还是处于 之前的状态

等过一会儿,再次 查看 WSL 下 有哪些,就会看到

C:\Users\admin>wsl -l
适用于 Linux 的 Windows 子系统分发:
docker-desktop (默认)
docker-desktop-data

docker-desktop还是处于之前的状态,不知过了多长时间(去查WSL命令并整理了),整理完了一看,正常启动了
在这里插入图片描述

可能大家比较好奇,为什么Ubuntu22.02docker-desktop有关系,可能都处于同一个WSL下面吧

其实之前 安装https://vulhub.org/#/docs/run/搭建靶场,安装docker后启动一直有问题,wsl中的docker-desktop可能和ubuntu-22.02中的也有关系吧

目前docker正常启动了,先这样吧

对了,最后教给大家不登陆,进入docker界面

在这里插入图片描述
在这里插入图片描述

WSL 2 installtation incomplete

关闭docker,Hyper-V安装配置好,再次运行

在这里插入图片描述
很不幸又出错误了:

在这里插入图片描述
搜索发现是wsl版本太老了,需要更新
适用于 x64 计算机的 WSL2 Linux 内核更新包
如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:systeminfo | find “System Type”。 警告: 在非英语 Windows 版本中,你可能需要修改搜索文本,例如在德语中为 systeminfo | find “Systemtyp”。
安装适用于 Linux 的 Windows 子系统 (WSL) 时有两个选项:
简化安装 (预览版) :wsl --install
要使用 wsl --install 简化安装命令,你需要加入 Windows 预览体验计划 并安装 Windows 10 的预览版(OS 版本 20262 或更高版本),但不需要执行手动安装步骤。 只需使用管理员权限打开命令窗口并运行 wsl --install,重启后即可使用 WSL。

这里我直接下载了ARM64包点击安装后,重启,点击docker完美解决!!!
在这里插入图片描述

在这里插入图片描述







GarenWang

win10 家庭中文版没有Hyper-V,这样安装一步搞定

山西茄子

windows下问题

元宝的程序员爸爸

解决Docker 一直starting 的办法

Fireworks_1020

Docker Desktop启动一直转圈问题

weixin_44054756

win10安装docker教程、常见问题和原理总结

<think>我们在回答用户的问题时,需要分为两个部分:1.Windows10安装Docker的详细步骤2.在VSCode中配置使用kkfileview实现文件预览的教程由于用户提到要在VSCode中使用kkfileview,而kkfileview是一个基于Java的文件预览开源项目,通常需要运行在服务端。因此,我们安装Docker后,需要拉取kkfileview的Docker镜像并运行容器。然后在VSCode中配置使用该服务。注意:在Windows10安装Docker,需要确保系统满足要求(64位操作系统,Windows101903或更高版本,支持Hyper-VWSL2.0)。如果用户系统版本较低,可能需要升级。步骤:第一部分:安装Docker1.确保系统满足要求:Windows101903(Build18362)或更高版本,并且启用Hyper-VWSL2。如果未启用,请参考步骤2。2.启用Hyper-VWSL2:在“控制面板”->“程序”->“启用或关闭Windows功能”中勾选“Hyper-V”“适用于Linux的Windows子系统”,然后重启电脑。3.下载DockerDesktop:从Docker官网下载DockerDesktopforWindows安装程序。4.安装DockerDesktop:双击安装程序,按照向导完成安装。5.启动DockerDesktop:安装完成后,从开始菜单启动DockerDesktop。等待Docker启动完成(系统托盘出现Docker图标)。6.验证安装:打开命令提示符(CMD)或PowerShell,运行命令`docker--version``dockerrunhello-world`验证安装是否成功。第二部分:在Docker中运行kkfileview1.拉取kkfileview的Docker镜像:在命令提示符或PowerShell中运行`dockerpullkeking/kkfileview`2.运行kkfileview容器:`dockerrun-d-p8012:8012--namekkfileviewkeking/kkfileview`-参数说明:-d表示后台运行,-p指定端口映射(主机端口8012映射到容器端口8012),--name指定容器名称。3.验证容器运行:`dockerps`查看运行中的容器。然后在浏览器中访问http://localhost:8012应该可以看到kkfileview的演示页面。第三部分:在VSCode中配置使用kkfileview预览文件kkfileview是一个服务,它提供HTTP接口来预览文件。在VSCode中,我们可以通过安装支持http文件预览的插件,或者通过配置自定义预览来实现。但是,目前并没有直接集成kkfileview的VSCode插件。因此,我们可以通过以下方法实现:方法1:使用现有的文件预览插件,如“ViewInBrowser”插件,但这种方式主要针对网页文件。对于其他文件类型(如office文档),kkfileview提供的是在线预览的URL,因此我们可以在VSCode中通过打开浏览器来预览。方法2:自行编写VSCode扩展,但考虑到用户可能只需要简单的预览功能,我们可以推荐使用在浏览器中预览的方式。配置步骤(方法1):1.在VSCode中安装扩展“ViewInBrowser”:在扩展商店搜索并安装“ViewInBrowser”。2.打开一个文件(例如一个PDF文档),右键选择“在浏览器中打开”或使用快捷键(Ctrl+F1)。注意:此时默认打开的地址是本地文件路径(file:///C:/...),但kkfileview需要将文件上传或通过URL访问。3.因此,我们需要先将文件通过HTTP方式暴露出来,比如使用本地HTTP服务器(例如使用Python的SimpleHTTPServer模块),然后生成该文件的URL,再拼接到kkfileview的预览接口。然而,这种方法需要多个步骤,略显复杂。更简便的方法是,我们可以通过一个简单的脚本来实现:在本地启动一个HTTP服务器,并自动生成kkfileview的预览链接在浏览器中打开。考虑到用户操作的便捷性,我们可以提供一个Python脚本(或Node.js脚本)作为辅助。但这里为了简化,我们使用一个更直接的方式:使用kkfileview提供的接口,手动上传文件。但是,kkfileview也支持直接通过URL预览,所以如果我们能将文件放在一个可访问的URL下,就可以用如下链接预览:http://localhost:8012/onlinePreview?url=文件的URL因此,我们需要一个本地HTTP服务器来提供文件。我们可以使用VSCode的扩展“LiveServer”来快速启动一个本地服务器,然后获取文件的URL,再使用上述格式的链接进行预览。实际步骤(使用LiveServer浏览器):1.在VSCode中安装“LiveServer”扩展(由RitwickDey提供)。2.在文件资源管理器中右键单击你要预览的文件,选择“OpenwithLiveServer”。此时会打开浏览器,显示该文件(如果是网页文件,会直接显示;如果是下载文件,浏览器可能会直接下载,所以我们需要复制URL)。3.复制该文件的URL(例如:http://127.0.0.1:5500/example.docx)。4.然后打开一个新的浏览器标签页,输入:http://localhost:8012/onlinePreview?url=http://127.0.0.1:5500/example.docx这样即可预览文件。不过,每次都要手动拼接URL比较麻烦。我们可以写一个VSCode的脚本扩展来自动完成,或者使用一个简单的VSCode扩展。但目前没有现成的扩展,所以这里介绍手动方式。另一种方式是使用kkfileview的本地文件预览功能:启动容器时挂载本地目录,这样可以通过kkfileview的接口直接访问本地文件。但是kkfileview的Docker镜像默认不支持直接读取本地文件(因为安全考虑)。所以我们需要在启动容器时挂载本地目录,然后通过kkfileview的file参数传递本地文件路径(在容器内部路径)。启动容器命令修改为:dockerrun-d-p8012:8012-v/c/Users/yourusername:/home/file--namekkfileviewkeking/kkfileview注意:在Windows下,路径映射需要遵循Docker的规则。例如,Windows的C盘映射为/c。然后,在浏览器中访问:http://localhost:8012/onlinePreview?filePath=/home/file/test.docx但是,这种方法需要将文件放在挂载的目录下。考虑到用户的使用便利性,我们推荐第一种使用URL的方式,因为这样更通用。而挂载目录的方式可能在文件更新后还需要刷新等问题。因此,总结在VSCode中预览的步骤(使用LiveServer):步骤1:在VSCode中打开文件所在的工作区。步骤2:使用LiveServer启动该工作区的服务器(在资源管理器右键文件夹选择“OpenwithLiveServer”)。记下根地址,比如http://127.0.0.1:5500。步骤3:在VSCode中右键点击要预览的文件,选择“OpenwithLiveServer”,此时该文件会在浏览器中打开(如果浏览器直接下载,则复制地址栏的URL,注意这可能是该文件的下载地址,直接使用即可)。步骤4:然后使用这个URL,构造如下预览链接:http://localhost:8012/onlinePreview?url=步骤3中复制的URL步骤5:在浏览器中打开步骤4的链接,即可预览。注意:kkfileview支持预览的格式包括:doc,docx,ppt,pptx,xls,xlsx,pdf等。最后,我们提供相关问题回答的结构。注意:用户的问题中提到了“参考站内引用”,但我们的回答中并没有现成的引用,所以我们按照实际情况写。如果有引用,我们会添加引用标识。由于这是技术指导,我们不需要添加引用标识,因为内容都是常规步骤。下面按照用户的要求,生成相关问题。</think> ### Windows 10 安装 Docker 及 VSCode 配置 kkFileView 教程 #### **一、Windows 10 安装 Docker 步骤** 1. **系统要求验证** - 确认系统版本为 Windows 10 Build 19044+(Win+R输入`winver`检查) - 开启 Hyper-V WSL 2: ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /all /norestart wsl --install ``` 重启计算机(需 BIOS 启用虚拟化支持) 2. **下载 Docker Desktop** - 访问 [Docker 官网](https://www.docker.com/products/docker-desktop) 下载 Windows 版本安装包 3. **安装与配置** - 双击安装包 → 勾选 **`Enable WSL 2 Features`** → 完成安装 - 启动 Docker Desktop → 右托盘图标 > Settings > Resources > WSL Integration → 启用 WSL 2 - 验证安装: ```powershell docker --version # 显示版本如 Docker version 24.0.7 docker run hello-world # 运行容器 ``` #### **二、配置 kkFileView 文件预览服务** 1. **启动 kkFileView 容器** ```powershell docker run -d -p 8012:8012 --name kkfileview keking/kkfileview ``` - `-d`:后台运行容器 - `-p 8012:8012`:主机端口映射容器端口[^1] 2. **验证服务** - 浏览器访问 `http://localhost:8012`,看到文档预览界面即成功 - 查看日志:`docker logs kkfileview` #### **三、VSCode 集成配置** 1. **安装必备扩展** - 安装官方扩展:**Remote - Containers** - 可选扩展:**REST Client**(用于试接口) 2. **配置文件预览** - 在 VSCode 中创建试文件 `test.http`: ``` GET http://localhost:8012/onlinePreview?url=http://example.com/sample.docx ``` - 右键发送请求 → 返回预览页面 URL - **实际应用**: 将本地文件上传至服务端(如通过 Python HTTP 服务提供文件 URL) #### **四、常见问题解决** - **端口冲突**:修改 `-p 新端口:8012` - **文件无法访问**: - 添加目录挂载:`-v C:/files:/opt/kkFileView-4.1.0/file` - 访问 `?filePath=/opt/.../file/sample.docx` - **WSL 错误**:更新内核包:[WSL2 Linux 内核更新](https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package) --- ### 📚 相关问题 1. 如何优化 Docker 容器性能避免 VSCode 卡顿? 2. kkFileView 支持哪些文件格式的预览?如何处理不支持的格式? 3. 如何在局域网中共享 kkFileView 服务供其他设备访问? 4. 如何通过 Docker Compose 管理 kkFileView 及其依赖服务? [^1]: 关于端口映射原理详见 Docker 文档 [网络配置](https://docs.docker.com/config/containers/container-networking/)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值