前端0知识docker临危之被迫弄docker教程
如果!你的后端让你能自己启动后端代码和连接数据库,发送了一个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 : EnabledFeatureName : 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' }
确认 HypervisorPlatform
为 Enabled。如下图:
然后彻底清理已经损坏的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容器运行整个项目