前端0知识docker临危之被迫弄docker教程

发布于:2025-07-18 ⋅ 阅读:(20) ⋅ 点赞:(0)

如果!你的后端让你能自己启动后端代码和连接数据库,发送了一个zip,这时候先解压缩吧比较完备的目录应该是这样(前端不确定这是否正确,后端给发的就是这样,也成功弄起了)

这时他将让你弄docker!!!!!!!!,以下是docker纯小白,作者也是,所以以下步骤照着弄是弄起了,以下步骤是作者摸摸索索被一个博客误导自己摸索的完整前端在Windows弄docker过程

首先在Windows中搜索“启用或关闭Windows功能”,去开启Docker所需要的选项。

 

以上步骤原因不知,照做就可以,开启之后应该会提示重启,重启即可

然后安装linux子系统:先以管理员身份运行powershell,然后运行指令:

# 下载或者更新
wsl --update
# 重新启动
wsl --shutdown

然后安装Docker桌面应用,点击该链接即可进入docker官网安装:Windows | Docker Docs

这里根据自己系统选择,通常就是红线那个

然后安装。

安装完可能需要重启电脑。

然后点击下载好的docker desktop进行注册登录,可以直接点击谷歌或者github(需要梯子)进行,如果这时候弹出了一个弹窗显示以下内容,

Docker Desktop - Unexpected WSL error
An unexpected error occurred while executing a WSL command.

Either shut down WSL down with wsl --shutdown, and/or reboot your machine. You can also try reinstalling WSL and/or Docker Desktop. If the issue persists, collect diagnostics and submit an issue.

deploying WSL2 distributions
ensuring main distro is deployed: deploying "docker-desktop": importing WSL distro "由于未安装所需的特性,无法启动操作。 \r\n错误代码: Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_SERVICE_NOT_AVAILABLE\r\n" output="docker-desktop": importing distro: running WSL command wsl.exe C:\Windows\System32\wsl.exe --import docker-desktop <HOME>\AppData\Local\Docker\wsl\main C:\Program Files\Docker\Docker\resources\wsl\wsl-bootstrap.tar --version 2: 由于未安装所需的特性,无法启动操作。 
错误代码: Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_SERVICE_NOT_AVAILABLE
: exit status 0xffffffff

并且查看电脑右下侧如果你的不是is running而是stop(如下图),即使登录进去之后还是stop那么就是wsl没有配置好,这个问题原因未知,上面步骤我是跟着一个博客走的就是出现了WSL error,以下步骤可解决这个问题

解决WSL error问题:

 以管理员进入powershell,输入指令

Get-WindowsOptionalFeature -Online | Where-Object { $_.FeatureName -match 'Hyper|VirtualMachine|WSL' }

出现以下信息:

FeatureName : VirtualMachinePlatform
State       : Enabled

FeatureName : HypervisorPlatform
State       : Disabled

系统当前没有启用 HypervisorPlatform,这通常是导致 Docker Desktop 启动失败、无法导入 docker-desktop 分发的关键原因之一

然后输入指令(管理员 PowerShell):

dism.exe /online /enable-feature /featurename:HypervisorPlatform /all /norestart

然后重启电脑

重启电脑之后:

在管理员powershell上输入指令:

Get-WindowsOptionalFeature -Online | Where-Object { $_.FeatureName -match 'Hyper' }

确认 HypervisorPlatformEnabled。如下图:

然后彻底清理已经损坏的Docker分支!!(必须执行)请先退出 Docker Desktop,确保它的所有后台进程已关闭:

管理员 PowerShell 中执行:

wsl --shutdown
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data

然后在管理员powershell里面执行:

wsl -l -v

下图说明Docker Desktop 的核心分发版 docker-desktop 已经成功启动并运行在 WSL2 模式下!=> 说明 Docker 的 WSL 集成环境已经正确部署。

以上步骤是基于你的docker出现了WSL error!!!!!!如果没出现,或者通过上述步骤解决了我的话,之后进行docker配置

 点击docker进入之后,此时查看docker状态正式running而不是stop了

点击右下侧,进入docker的setting页面(正常怎么进入我不知道,我是点击这个更新提示进入的)

然后点击gerneral进行配置勾选红线部分,灰色是系统可能已经自定义选择了就不用管,记得点击右下角的apply

 然后点击engine进行镜像资源配置,在框内输入,输入完成之后记得点击右下角的apply

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://docker.xuanyuan.me",
    "https://mirror.ccs.tencentyun.com",
    "https://registry.docker-cn.com"
  ]
}


我用的阿里巴巴推的轩辕,因为其他的我在下载项目依赖基本上都下载失败,轩辕的也就go出问题,这里因为go下载失败所以跟后端说了之后,后端把go也弄进了容器镜像里就不需要远程拉取go镜像了

以上之后docker配置完成了恭喜!!!!!

这时候就要去运行项目了

用vscode打开项目之后,打开git bash,在我们在项目中存在docker-compose.dev.yml文件,我们需要根据这个文件里面的依赖什么下载启动容器

所以在项目根目录的gitbash中执行指令:

docker compose -f docker-compose.dev.yml --env-file .env.development up -d

此时应该是没有什么问题了,如果出现就找后端,前端自己闷头解决很痛苦!!!!!!!!!!!!!!!!!!!!!!!!!!!!

比如在我们的项目中打包排除了react和react-dom所以前端容器一直运行失败,我更更改了vite配置就行其他非前端问题找后端

甚至也遇到了这个问题:

Error respanse from daemon: failed to create task for container: failed to create shim task: 0l runtime create failed: runc create failed: wmnable to start continer process: error during container init: exec: "/app/main": stat /app/main: no such file or directory: unknown

不知道为什么反正发给后端改,后端也弄好了然后没问题了

docker compose -f docker-compose.dev.yml --env-file .env.development up -d

这个指令最后结果是三个容器(有对应容器名字)都运行成功证明成了!!!!!!!如下图:

容器启动成功图

这时候我们是前端肯定得检查前端容器以及进入对应端口查看页面,输入指令:

docker logs xupt-frontend-1

注意这里得xupt-fontend-1是自己项目的前端容器名字,项目都有差异,后端那边会定义好容器名,这个前端容器名就从上面那张图片可以得到对应容器名字,检查前端容器日志,正常运行结果就类似于:

好了以上就是完整的前端用docker容器运行整个项目


网站公告

今日签到

点亮在社区的每一天
去签到