我运行Windows 11,当我尝试启动时,Docker desktop app出现以下错误:Docker failed to initialize. Docker Desktop is shutting down.
在发布此内容之前我已经尝试了几件事:
Docker desk app又安装了。WSL 2并再次安装该应用程序。我该如何修复它?有什么建议么?谢谢。
linux windows docker docker-compose windows-subsystem-for-linux
我在 Windows 上使用 Eclipse 连接到 wsl 上的文件,并且遇到了明显的 Eclipse 错误,该错误导致 \wsl$\folder1\pom.xml 等文件名被破坏。 https://bugs.eclipse.org/bugs/show_bug.cgi?id=577938
错误报告中的评论提出了可能的解决方法
A workaround is to map the UNC path to a drive letter, but this shouldn't be necessary
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
我已经从 Bjarne Stroustrup 的C++ 之旅中复制了代码来测试字符串视图,但我不断收到错误:
\nerror: no matching function for call to \xe2\x80\x98std::__cxx11::basic_string<char>::basic_string(std::basic_string_view<char>::size_type\nRun Code Online (Sandbox Code Playgroud)\n我正在使用 VS CodeWSL 2和Ubuntu 20.04gcc-11
在 中main.cpp,我有:
#include <iostream>\n#include "strings.h"\n\nusing namespace std;\n\nint main () {\n string king = "Harold";\n auto s1 = cat(king, "William");\n}\nRun Code Online (Sandbox Code Playgroud)\n中strings.h,我有以下内容。该函数按照教科书上的内容复制。我把它打出来是为了避免*出现具有不同编码的特殊字符。
#pragma once\n#include <string>\n\nusing namespace std;\n\nstring cat(string_view sv1, string_view sv2) {\n string res(sv1.length()+sv2.length());\n char* p = &res[0];\n\n for (char c : sv1) // one way\n …Run Code Online (Sandbox Code Playgroud) 我在 Windows 机器上的三种环境中用 C++ 编写:
我正在处理巨大的数据集,基本上需要能够将它们分解成尽可能大的块以便在内存中进行操作。为了找到块的大小,我想象了如下所示:
size_t findOptimalSize(long long beginningSize) {
long long currentSize = beginningSize;
while (currentSize > 0) {
try {
std::vector<double> v(currentSize);
return currentSize;
} catch (std::bad_alloc &ex) {
currentSize /= 10;
}
}
return 0;
}
int main() {
long long size(50000000000000);
try {
std::vector<double> v(size);
std::cout << …Run Code Online (Sandbox Code Playgroud) 我正在对我构建的图像执行docker-compose upin WSL,但收到此错误:
Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/my_path/my_shell_script": permission denied: unknown
Run Code Online (Sandbox Code Playgroud)
我在这样的几个问题中找到了一些建议,他们说要更改我尝试访问的目录的权限,但它不起作用,我仍然遇到相同的错误。知道我该如何解决这个问题吗?
我刚刚开始使用 neovim,在尝试将代码从 neovim 复制到系统剪贴板时遇到问题。我想分享一些代码行,但无法将代码复制到系统剪贴板中。
我已经尝试了很多解决方案。我对lua的了解为零。我复制了一个我喜欢的配置文件,这就是我正在使用的,所以我不知道我在做什么。我尝试过的一些事情是安装 win32yank,
vim.cmd [[
let g:clipboard = {
\ 'name': 'win32yank-wsl',
\ 'copy': {
\ '+': 'win32yank.exe -i --crlf',
\ '*': 'win32yank.exe -i --crlf',
\ },
\ 'paste': {
\ '+': 'win32yank.exe -o --lf',
\ '*': 'win32yank.exe -o --lf',
\ },
\ 'cache_enabled': 0,
\ }
]]
Run Code Online (Sandbox Code Playgroud)
我也尝试过
let g:clipboard = {
\ 'name': 'WslClipboard',
\ 'copy': {
\ '+': 'clip.exe',
\ '*': 'clip.exe',
\ },
\ 'paste': {
\ '+': 'powershell.exe -c [Console]::Out.Write($(Get-Clipboard -Raw).tostring().replace("`r", ""))', …Run Code Online (Sandbox Code Playgroud) 我想检查 C 中各种浮点类型可以保存的最大整数而不损失精度。这是一个测试程序:
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
#define FLOATTYPE long double
#define ONE ((FLOATTYPE)1.0)
#define TWO ((FLOATTYPE)2.0)
int
main(int argc,char*argv[]){
int i;
FLOATTYPE x;
x = ONE;
for(i=0;;++i){
printf("1.0<<%3d: x=%.0Lf",i,(long double)x);
if((x+ONE)!=x &&
(x+ONE)- x == ONE){
printf(" ... can increment without loss of precision\n");
}else{
printf(" ... cannot increment without loss of precision\n");
break;
}
x *= TWO;
}
printf("FLT_RADIX = %d\n",FLT_RADIX);
printf("FLT_MANT_DIG = %d\n",FLT_MANT_DIG);
printf("DBL_MANT_DIG = %d\n",DBL_MANT_DIG);
printf("LDBL_MANT_DIG = %d\n",LDBL_MANT_DIG);
printf("\nsizeof(FLOATTYPE) = %lu\n",sizeof(x));
}
Run Code Online (Sandbox Code Playgroud)
一些结果(使用gcc-9(Ubuntu 9.4.0-1ubuntu1~16.04)9.4.0): …
我在 win 11 上安装了 docker,运行后出现此错误:Docker Desktop 需要更新的 WSL 内核版本。
我检查了 WSL 版本为 1.1.3.0,它与 docker 要求兼容。所以我不知道问题是什么!
在 win 11 上安装 Docker
我在使用适用于 Linux 的 Windows 子系统 (Ubuntu 22.04.2 LTS) 时遇到一些问题。我需要通过映射网络驱动器来访问我在本地访问的文件夹。
我已从 Microsoft App Store 安装了 WSL 和 Ubuntu。我已经使用这个系统几个月了,从未遇到过问题。
从昨天开始,当尝试为我映射的驱动器中的文件夹打开 Linux 终端时,出现以下错误:
<3>WSL (358) ERROR: CreateProcessParseCommon:789: Failed to translate Z:/
Run Code Online (Sandbox Code Playgroud)
在任何其他文件夹(例如桌面)或任何本地文件夹中打开 Linux 终端时,我都没有遇到同样的问题。
我不熟悉此类错误,因此尝试任何方法都会有很大帮助。
我想将 nvidia 运行时添加到我的 docker 中。请注意,我正在运行 Windows 11。Windows 上的 Docker Desktop v.4.24.2 集成在 WSL 2 NVIDIA 驱动程序 545.84 上
我将所有内容安装为 nvidia-container-toolkit 并在运行 ubuntu 22.04 LTS 的 wsl 中我能够运行
docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 -it --rm -v .:/app nvcr.io/nvidia/pytorch:22.07-py3
Run Code Online (Sandbox Code Playgroud)
它实际上为我的 GPU 加载了它需要的一切。我知道这一点是因为我能够在 jupyter 笔记本中执行
import torch
for i in range(torch.cuda.device_count()):
print(torch.cuda.get_device_properties(i).name)
Run Code Online (Sandbox Code Playgroud)
它显示了我的 GPU (RTX 2080 SUPER)
但如果我想使用标志 --runtime=nvidia 它说
docker:来自守护进程的错误响应:未知或无效的运行时名称:nvidia。请参阅“docker run --help”。
我想在 docker compose 中使用它:
version: '3'
services:
pytorch_container:
image: nvcr.io/nvidia/pytorch:22.07-py3
command: ["bash"]
volumes:
- .:/app
runtime: …Run Code Online (Sandbox Code Playgroud) windows-subsystem-for-linux ×10
docker ×5
linux ×4
windows ×3
c++ ×2
wsl-2 ×2
bash ×1
c ×1
c++20 ×1
copy-paste ×1
double ×1
long-double ×1
lua ×1
neovim ×1
nvidia ×1
pytorch ×1
string-view ×1
ubuntu ×1
unc ×1