参考请注意: 该文档创建于 2022/3/14,请注意随时间流逝文档信息是否过时,是否还有可参考的价值。 该文档仅作为个人笔记记录。 该文档记录时,使用的软件等版本会列在文档中,请注意识别。
安装
死亡之路寒假的某一天,我看见了docker这个东西,安装了vscode插件,然后它自动下载了docker desktop。
然后不知道这是干啥的。
然后一艘,发现docker desktop不能在家庭版运行(但是现在可以了!
按照网上的运行方法,在系统中开启了hyper-v。。。
然后安装了wsl2(这个没问题
之后再次安装docker desktop,准备配置,发现问题
- 开始就是docker engine stopped,然后点设置一直转圈圈
- 用了两次某命令🆗了,但是检测不到wsl2,多次重装,试图使之成功
这个时候文件搜不到 - 多次重装乱调之后,现在安装,前端界面都打不开了。。。
试图复活
试图寻找一条复活的道路:考虑重装系统,此外
https://blog.csdn.net/qq_41890209/article/details/113844451
https://answers.microsoft.com/zh-hans/windows/forum/all/win10%E5%AE%B6%E5%BA%AD%E7%89%88%E5%A6%82%E4%BD%95/dbed5740-f2f2-4ae1-b661-34abaeacc819
Dism /online /disable-feature /featurename:Microsoft-Hyper-V-All /Remove
https://zhuanlan.zhihu.com/p/180102893
Dism /Online /Cleanup-Image /RestoreHealth Dism.exe /online /Cleanup-Image /StartComponentCleanup sfc /scannow
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All ```bash Dism /online /disable-feature /featurename:Microsoft-Hyper-V-All /Remove C:\Users\Administrator>sfc /scannow
开始系统扫描。此过程将需要一些时间。
开始系统扫描的验证阶段。 验证 100% 已完成。
Windows 资源保护找到了损坏文件并成功修复了它们。 对于联机修复,位于 windir\Logs\CBS\CBS.log 的 CBS 日志文件中 有详细信息。例如 C:\Windows\Logs\CBS\CBS.log。对于脱机修复, /OFFLOGFILE 标记提供的日志文件中有详细信息。
然后重启一次,再试试。<br />此时还是可以使用WSL,没问题<a name="WONLD"></a>### 病危通知书```bashPS C:\Users\Administrator> & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" check[084:13:18:30.911][I] ipc.NewClient: 16c87ef7-com.docker.diagnose -> \\.\pipe\dockerBackendV2 com.docker.service.exe[goroutine 1 [running, locked to thread]:[win/backend/pkg/service.NewClientForPath(...)[ win/backend/pkg/service/service.go:42[win/backend/pkg/service.NewClient({0xdaf112, 0x13}, {0x0, 0x0, 0x0})[ win/backend/pkg/service/service.go:31 +0xd0[common/pkg/diagkit/gather/diagnose.init()[ common/pkg/diagkit/gather/diagnose/ipc_windows.go:23 +0x11fStarting diagnostics[PASS] DD0027: is there available disk space on the host?[SKIP] DD0028: is there available VM disk space?[FAIL] DD0031: does the Docker API work? error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine_linux/v1.24/containers/json?limit=0": open //./pipe/docker_engine_linux: The system cannot find the file specified.[FAIL] DD0004: is the Docker engine running? Get "http://ipc/docker": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[084:13:18:31.182][I] ipc.NewClient: dfebe460-com.docker.diagnose -> \\.\pipe\dockerLifecycleServer VMDockerdAPI[linuxkit/pkg/desktop-host-tools/pkg/client.NewClientForPath(...)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:59[linuxkit/pkg/desktop-host-tools/pkg/client.NewClient({0xdaf112, 0x13})[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:53 +0xa5[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:21 +0x29[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00035f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00035f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00035f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:31.183][I] (d0a01ebf) dfebe460-com.docker.diagnose C->S VMDockerdAPI GET /docker[084:13:18:31.183][E] (d0a01ebf) dfebe460-com.docker.diagnose C<-S NoResponse GET /docker (0s): Get "http://ipc/docker": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[linuxkit/pkg/desktop-host-tools/pkg/client.(*lifecycleClient).GetDockerState(0xc000402040)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:105 +0x5c[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:22 +0x32[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:31.183][I] (d0a01ebf-1) dfebe460-com.docker.diagnose C->S VMDockerdAPI GET /ping[084:13:18:31.183][E] (d0a01ebf-1) dfebe460-com.docker.diagnose C<-S NoResponse GET /ping (0s): Get "http://ipc/ping": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[linuxkit/pkg/desktop-host-tools/pkg/client.(*lifecycleClient).GetDockerState(0xc000402040)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:105 +0x5c[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:22 +0x32[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:32.197][I] (d0a01ebf-2) dfebe460-com.docker.diagnose C->S VMDockerdAPI GET /ping[084:13:18:32.197][E] (d0a01ebf-2) dfebe460-com.docker.diagnose C<-S NoResponse GET /ping (0s): Get "http://ipc/ping": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[linuxkit/pkg/desktop-host-tools/pkg/client.(*lifecycleClient).GetDockerState(0xc000402040)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:105 +0x5c[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:22 +0x32[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:33.198][I] (d0a01ebf-3) dfebe460-com.docker.diagnose C->S VMDockerdAPI GET /ping[084:13:18:33.198][E] (d0a01ebf-3) dfebe460-com.docker.diagnose C<-S NoResponse GET /ping (0s): Get "http://ipc/ping": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[linuxkit/pkg/desktop-host-tools/pkg/client.(*lifecycleClient).GetDockerState(0xc000402040)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:105 +0x5c[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:22 +0x32[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:34.201][I] (d0a01ebf-4) dfebe460-com.docker.diagnose C->S VMDockerdAPI GET /ping[084:13:18:34.201][E] (d0a01ebf-4) dfebe460-com.docker.diagnose C<-S NoResponse GET /ping (197µs): Get "http://ipc/ping": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[linuxkit/pkg/desktop-host-tools/pkg/client.(*lifecycleClient).GetDockerState(0xc000402040)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:105 +0x5c[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:22 +0x32[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:35.204][I] (d0a01ebf-5) dfebe460-com.docker.diagnose C->S VMDockerdAPI GET /ping[084:13:18:35.204][E] (d0a01ebf-5) dfebe460-com.docker.diagnose C<-S NoResponse GET /ping (128.8µs): Get "http://ipc/ping": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[linuxkit/pkg/desktop-host-tools/pkg/client.(*lifecycleClient).GetDockerState(0xc000402040)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:105 +0x5c[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:22 +0x32[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:36.210][I] (d0a01ebf-6) dfebe460-com.docker.diagnose C->S VMDockerdAPI GET /ping[084:13:18:36.211][E] (d0a01ebf-6) dfebe460-com.docker.diagnose C<-S NoResponse GET /ping (186.9µs): Get "http://ipc/ping": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[linuxkit/pkg/desktop-host-tools/pkg/client.(*lifecycleClient).GetDockerState(0xc000402040)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:105 +0x5c[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:22 +0x32[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:37.211][I] (d0a01ebf-7) dfebe460-com.docker.diagnose C->S VMDockerdAPI GET /ping[084:13:18:37.211][E] (d0a01ebf-7) dfebe460-com.docker.diagnose C<-S NoResponse GET /ping (177.8µs): Get "http://ipc/ping": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[linuxkit/pkg/desktop-host-tools/pkg/client.(*lifecycleClient).GetDockerState(0xc000402040)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:105 +0x5c[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:22 +0x32[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:38.216][I] (d0a01ebf-8) dfebe460-com.docker.diagnose C->S VMDockerdAPI GET /ping[084:13:18:38.216][E] (d0a01ebf-8) dfebe460-com.docker.diagnose C<-S NoResponse GET /ping (163.8µs): Get "http://ipc/ping": open \\.\pipe\dockerLifecycleServer: The system cannot find the file specified.[linuxkit/pkg/desktop-host-tools/pkg/client.(*lifecycleClient).GetDockerState(0xc000402040)[ linuxkit/pkg/desktop-host-tools/pkg/client/client.go:105 +0x5c[common/pkg/diagkit/gather/diagnose.isDockerEngineRunning()[ common/pkg/diagkit/gather/diagnose/dockerd.go:22 +0x32[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372200)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372200)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[FAIL] DD0011: are the LinuxKit services running? failed to ping VM diagnosticsd with error: Get "http://ipc/ping": open \\.\pipe\dockerDiagnosticd: The system cannot find the file specified.[084:13:18:38.221][I] ipc.NewClient: c46aa614-diagnose -> \\.\pipe\dockerDiagnosticd diagnosticsd[common/pkg/diagkit/gather/diagnose.glob..func13()[ common/pkg/diagkit/gather/diagnose/linuxkit.go:18 +0x92[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372180)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372180)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372180)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x3, 0x1372180, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[084:13:18:38.221][I] (2d48ca01) c46aa614-diagnose C->S diagnosticsd GET /ping[084:13:18:38.221][E] (2d48ca01) c46aa614-diagnose C<-S NoResponse GET /ping (0s): Get "http://ipc/ping": open \\.\pipe\dockerDiagnosticd: The system cannot find the file specified.[common/pkg/diagkit/gather/diagnose.glob..func13()[ common/pkg/diagkit/gather/diagnose/linuxkit.go:19 +0x9e[common/pkg/diagkit/gather/diagnose.(*test).GetResult(0x1372180)[ common/pkg/diagkit/gather/diagnose/test.go:46 +0x43[common/pkg/diagkit/gather/diagnose.Run.func1(0x1372180)[ common/pkg/diagkit/gather/diagnose/run.go:17 +0x5a[common/pkg/diagkit/gather/diagnose.walkOnce.func1(0xc16677, 0x1372180)[ common/pkg/diagkit/gather/diagnose/run.go:140 +0x77[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x3, 0x1372180, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:146 +0x36[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x2, 0x1372200, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x1, 0x1372280, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkDepthFirst(0x0, 0x100000000e89100, 0xc00069f830)[ common/pkg/diagkit/gather/diagnose/run.go:149 +0x73[common/pkg/diagkit/gather/diagnose.walkOnce(0xcf1e20, 0xc00035f970)[ common/pkg/diagkit/gather/diagnose/run.go:135 +0xcc[common/pkg/diagkit/gather/diagnose.Run(0x1372400, 0xc00035fb48, {0xc00035fb00, 0x1, 0x1})[ common/pkg/diagkit/gather/diagnose/run.go:16 +0x1ce[main.checkCmd({0xc00006c3d0, 0xc00006c3d0, 0x4}, {0x0, 0x0})[ common/cmd/com.docker.diagnose/main.go:131 +0x105[main.main()[ common/cmd/com.docker.diagnose/main.go:97 +0x273[PASS] DD0016: is the LinuxKit VM running?[PASS] DD0001: is the application running?[SKIP] DD0018: does the host support virtualization?[PASS] DD0002: does the bootloader have virtualization enabled?[PASS] DD0017: can a VM be started?[PASS] DD0024: is WSL installed?[PASS] DD0021: is the WSL 2 Windows Feature enabled?[PASS] DD0022: is the Virtual Machine Platform Windows Feature enabled?[FAIL] DD0025: are WSL distros installed? WSL Distribution docker-desktop is missing[PASS] DD0026: is the WSL LxssManager service running?[FAIL] DD0029: is the WSL 2 Linux filesystem corrupt? exit status 0xffffffff[PASS] DD0015: are the binary symlinks installed?error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json": open //./pipe/docker_engine: The system cannot find the file specified.[FAIL] DD0003: is the Docker CLI working? exit status 1[PASS] DD0013: is the $PATH ok?[PASS] DD0005: is the user in the docker-users group?[PASS] DD0007: is the backend responding?2022/03/25 13:18:41 exit status 0xffffffff
一个个解决。现在死掉的是:0031,0004,0011,0025,0029,0003,6个
先打开Ubuntu,再来一次,错误更多更全了。
接下来做另一件事:
在docker文件夹下搜索所有的.exe文件,全部把以管理员身份运行打上勾
顺便发现前端.exe有勾上以兼容模式运行,去掉
然后重启
最终解决方案
run helloworld
首先配置docker镜像:https://juejin.cn/post/6847902220399312904
PS C:\WINDOWS\system32> docker run hello-worldUnable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-world2db29710123e: Pull completeDigest: sha256:bfea6278a0a267fad2634554f4f0c6f31981eea41c553fdf5a83e95a41d40c38Status: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
Docker
You need to develop a habit of reading English documents,
or be optimized.
About cli: https://docs.docker.com/engine/reference/commandline
About examples used(getting_started): https://docs.docker.com/get-started
基本概念
镜像(image)/构建镜像
镜像可以简单来说是一个操作系统,也可以是你的应用程序以及应用程序的构建环境。
镜像通过docker build从你的应用中构建。
dockerfile
构建之前,首先你需要在你的根目录下创建Dockerfile
(dockerfile如何创建
创建完成后,运行docker build -t mycnode .。其中:-t mycnode表示构建的这个镜像名字叫mycnode
最后的.表示在当前目录构建
构建完成后,在docker desktop内就看到了一个刚构建的mycnode镜像,如图:
拉取常用镜像
除了自己才应用构建镜像之外,也经常从Docker Hub去拉一些常用镜像。
常用方式:docker pull image-name:tag,如docker pull mysql:8.0.28
容器(container)/运行容器
容器基于镜像创建。创建容器类似于你将镜像app启动运行,容器是一个正在运行的镜像的实例。
通过[docker run](https://docs.docker.com/engine/reference/commandline/run/)命令通过镜像创建容器。如果本地没有镜像,会尝试从Docker Hub上拉。
这个命令其实很复杂。下面简单介绍常用参数:-p 8000:80:将你自己电脑的8000端口映射到容器的80端口-e NAME=value:配置进程环境变量NAME为value。nodejs里面可以通过process.env读取进程环境变量的值-d:容器在后台运行。不知道有没有这个有啥区别。不过都有-v todo-db:/etc/todos``-v "$(pwd):/app":使用数据卷/绑定挂载,映射到容器的/etc/todos文件夹-w /work/path:设置工作路径,也就是说,运行命令会在这里运行--network net-name:该容器并入net-name网络--network-alias address:设置该容器暴露的socket地址的别名,其它容器连接时,在docker中使用这个别名即可--name abc:容器名称abc
更新应用
如果你应用的源码有了改变,就把容器删了重新跑就行。
- 文档里面为什么没有重新建镜像?自动同步吗?还是什么原理?
- 有没有什么更自动化的方式?
- 如何区分dev和prod模式?
命名数据卷(named volume)
容器之间的文件系统虽然基于镜像创建,但是隔离的。容器删除重建,在其中变更的东西都没啦!
因此可加入数据卷来使得数据(如数据库的数据)持久保存。
基本方法:docker volume create <name>,或者前端操作绑定挂载(bind mount volume)
绑定挂载可以将本地(或者其它地方)给挂载到容器目录。会自动更新。
使用时,相对 named volume,只需要把前面换成本地目录就行了。
如$(pwd)就是当前工作路径。网络
网络模块涉及到不少东西。就比如,设置进程的环境变量,跨进程通信,各种映射
首先,通过docker network create todo-app,创建一个网络,这里名叫todo-app。
然后,在docker run中设置--network todo-app就可以在新容器启动时将其放入这个网络下,
设置--network-alias address,在后续docker run启动新的容器时,用address这个别名代指该进程的socket地址来连接。
docker-compose
创建 docker-compose.yml
之前按照示例运行一个完整的带 mysql 的 todolist,过程有点多:输入命令行设置网络,按照顺序启动mysql、todolist,且启动的时候带了很多的参数。
这个文件就是配置这些步骤的。配置完之后,在项目工作目录运行docker-compose up就可以把整个项目跑起来!
另外:
docker-compose down:就可以将整个容器组关掉。加入--volumes还会删除应用的命名数据卷!- 按文档的意思,一次只能运行一个容器组,想换一个项目,必须down了在重开
之前运行应用的命令:
PS> docker run -dp 3000:3000 `-w /app -v "$(pwd):/app" `--network todo-app `-e MYSQL_HOST=mysql `-e MYSQL_USER=root `-e MYSQL_PASSWORD=secret `-e MYSQL_DB=todos `node:12-alpine `sh -c "yarn install && yarn run dev"
PS> docker run -d `--network todo-app --network-alias mysql `-v todo-mysql-data:/var/lib/mysql `-e MYSQL_ROOT_PASSWORD=secret `-e MYSQL_DATABASE=todos `mysql:8.0.28
然后我们最终写的yml文件如下:
version: "3.7"services:app:image: node:12-alpinecommand: sh -c "yarn install && yarn run dev"ports:- 3000:3000working_dir: /appvolumes:- ./:/appenvironment:MYSQL_HOST: mysqlMYSQL_USER: rootMYSQL_PASSWORD: secretMYSQL_DB: todosmysql:image: mysql:8.0.28volumes:- todo-mysql-data:/var/lib/mysqlenvironment:MYSQL_ROOT_PASSWORD: secretMYSQL_DATABASE: todosvolumes:todo-mysql-data:
注意事项:
- 网络这块貌似是自动按照服务名映射到对应socket了
- app的绑定挂载这里,不是使用
$(pwd)了,而是./代指当前目录常用命令
docker
[docker exec](https://docs.docker.com/engine/reference/commandline/exec/) -it container_name command:在容器container_name中执行commanddocker compose
docker-compose -f docker-compose.dev.yml [up](https://docs.docker.com/compose/reference/up/) -d
左选项列表:-f:另指定使用的dockercompose文件名。
右选项列表:-d:不占用当前终端显示日志等,在背后运行。docker scan
Linux
通过nvm使用和管理nodejs/npm
通过nvm use node使用最新的node和npm版本。
常用命令:nvm ls-remote查看可安装的node版本nvm ls查看已经安装的node版本nvm install <version>安装特定版本的nodenvm use <version>切换使用特定node版本
此外,通过node和npm的--version命令查看现在使用的版本
