标签: windows-subsystem-for-linux

Docker 无法初始化。Docker Desktop 正在关闭

我运行Windows 11,当我尝试启动时,Docker desktop app出现以下错误:Docker failed to initialize. Docker Desktop is shutting down.

在发布此内容之前我已经尝试了几件事:

  1. 卸载了Docker desk app又安装了。
  2. 卸载它,重新启动计算机,更新WSL 2并再次安装该应用程序。

我该如何修复它?有什么建议么?谢谢。

linux windows docker docker-compose windows-subsystem-for-linux

3
推荐指数
2
解决办法
8294
查看次数

如何将 \\wsl$\ 类型的 unc 路径映射到 Windows 驱动器号?

我在 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)

我该怎么做呢?

windows unc drive-mapping windows-subsystem-for-linux

3
推荐指数
1
解决办法
4982
查看次数

string_view 和 basic_string<char> 之间的联系是什么?为什么 string_view 示例代码不起作用?

我已经从 Bjarne Stroustrup 的C++ 之旅中复制了代码来测试字符串视图,但我不断收到错误:

\n
error: no matching function for call to \xe2\x80\x98std::__cxx11::basic_string<char>::basic_string(std::basic_string_view<char>::size_type\n
Run Code Online (Sandbox Code Playgroud)\n

我正在使用 VS CodeWSL 2Ubuntu 20.04gcc-11

\n

在 中main.cpp,我有:

\n
#include <iostream>\n#include "strings.h"\n\nusing namespace std;\n\nint main () {\n    string king = "Harold";\n    auto s1 = cat(king, "William");\n}\n
Run Code Online (Sandbox Code Playgroud)\n

strings.h,我有以下内容。该函数按照教科书上的内容复制。我把它打出来是为了避免*出现具有不同编码的特殊字符。

\n
#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)

c++ string-view windows-subsystem-for-linux c++20 wsl-2

3
推荐指数
1
解决办法
625
查看次数

容器化 Linux 环境中的 C++:为什么尝试分配大向量会导致 SIGABRT 或永无休止的循环而不是 bad_alloc?

我在 Windows 机器上的三种环境中用 C++ 编写:

  1. 带有 Ubuntu - g++ 编译器的 Docker Linux 容器 (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
  2. Windows 上的 WSL Ubuntu 环境 - g++ 编译器 (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
  3. Windows - gcc 编译器(i686-posix-dwarf-rev0,由 MinGW-W64 项目构建)8.1.0

我正在处理巨大的数据集,基本上需要能够将它们分解成尽可能大的块以便在内存中进行操作。为了找到块的大小,我想象了如下所示:

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)

c++ linux out-of-memory docker windows-subsystem-for-linux

3
推荐指数
1
解决办法
249
查看次数

无法启动容器进程:权限被拒绝:未知

我正在对我构建的图像执行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)

我在这样的几个问题中找到了一些建议,他们说要更改我尝试访问的目录的权限,但它不起作用,我仍然遇到相同的错误。知道我该如何解决这个问题吗?

linux docker docker-compose windows-subsystem-for-linux

3
推荐指数
1
解决办法
1万
查看次数

从 neovim 复制到系统剪贴板

我刚刚开始使用 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)

lua copy-paste neovim windows-subsystem-for-linux

3
推荐指数
1
解决办法
1万
查看次数

为什么 long double 的精度不比 double 更高?

我想检查 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): …

c double long-double windows-subsystem-for-linux

3
推荐指数
1
解决办法
249
查看次数

Docker Desktop 需要更新的 WSL 内核版本

我在 win 11 上安装了 docker,运行后出现此错误:Docker Desktop 需要更新的 WSL 内核版本。

我检查了 WSL 版本为 1.1.3.0,它与 docker 要求兼容。所以我不知道问题是什么!

在 win 11 上安装 Docker

docker windows-subsystem-for-linux

3
推荐指数
1
解决办法
1万
查看次数

&lt;3&gt;WSL (358) 错误:CreateProcessParseCommon:789: 无法转换 Z:/

我在使用适用于 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 终端时,我都没有遇到同样的问题。

我不熟悉此类错误,因此尝试任何方法都会有很大帮助。

linux windows bash ubuntu windows-subsystem-for-linux

3
推荐指数
1
解决办法
6484
查看次数

将 nvidia 运行时添加到 Windows WSL 上的 docker 运行时

我想将 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)

nvidia docker windows-subsystem-for-linux pytorch wsl-2

3
推荐指数
1
解决办法
780
查看次数