不久前,我正在本地使用 WSL 1 开发一个 Web 应用程序。它在本地与 MongoDB 完美配合,但升级到 WSL 2 后,我根本无法连接。我仍然可以运行反应应用程序。
以下是一些详细信息: 版本:Microsoft Windows [版本 10.0.19041.172] WSL 2:Ubuntu
我如何从 WSL 2 的 Windows 端调用 MongoDB?
我有 Windows 10 和 Linux 子系统 (Ubuntu-20.04),并且我正在使用 WSL2。当我初始化前端项目(vue 项目)并运行npm run serve
时,一切正常。正如我所期望的,该应用程序在 localhost:8080 上运行。但是当我为这个应用程序创建后端(使用nodejs、express的新项目)时,我启动了简单的服务器,并且在终端中看起来不错,但是当我想在浏览器中进入 localhost:5000 查看基本的 Hello World 时,页面正在加载一段时间然后说网页本地主机没有发送任何数据。
这是我的 app.ts
import express, { Application, Request, Response, NextFunction } from 'express'
import bodyParser from 'body-parser'
import cors from 'cors'
import 'reflect-metadata'
const app: Application = express()
const port = 5000
app.use(cors)
app.use(bodyParser.json({ limit: '20480kb' }))
app.get('/', (req, res) => {
res.send('Hello!')
})
const server = app.listen(port, 'localhost', () => console.log(`The server is running on port ${port}.`))
Run Code Online (Sandbox Code Playgroud)
这是我的 package.json 脚本(将 …
我正在尝试在 wsl2 上构建 yocto,并且每当我尝试构建时都会遇到此类错误。
\nERROR: Task (/home/minwoo/yocto/poky/meta/recipes-core/initscripts/initscripts_1.0.bb:do_install) failed with exit code '134'\nERROR: Task (/home/minwoo/yocto/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb:do_install) failed with exit code '134'\n
Run Code Online (Sandbox Code Playgroud)\n我在这里附加了更多构建日志行。
\n什么是 134 错误以及如何解决它?
\xe2\x9e\x9c rpi-build bitbake core-image-minimal\nWARNING: You are running bitbake under WSLv2, this works properly but you should optimize your VHDX file eventually to avoid running out of storage space\nLoading cache: 100% | | ETA: --:--:--\nLoaded 0 entries from dependency cache.\nParsing recipes: 100% |################################################################################################################################| Time: 0:00:06\nParsing of 806 .bb files complete (0 cached, 806 parsed). 1410 …
Run Code Online (Sandbox Code Playgroud) 在我从无法设置的应用程序中重置 Ubuntu (wsl2) 后,例如,
导出 PATH=$PATH:/usr/local/go/bin
我的意思是它已设置,但在我关闭终端后,所有配置都已重置,我应该
导出 PATH=$PATH: /usr/local/go/bin
同样,即使我完全删除 wls 和 ubuntu 并重新安装,但没有任何变化
我有一台运行 Windows 10、WSL 2 的主机。我的访客是 Ubuntu。
我正在尝试sqlcmd
连接到在我的主机上运行的 SQL Server,但我不确定在连接中使用什么 IP?
我已经公开/启用了主机 Windows SQL Server 上 SQL 配置管理器的基本所有内容,并且正在使用如下命令来尝试连接:
sqlcmd -S 127.0.0.1 -U sa -P pass
Run Code Online (Sandbox Code Playgroud)
Sqlcmd:错误:适用于 SQL Server 的 Microsoft ODBC 驱动程序 17:登录超时已过期。
我正在 Linux (WSL2) 上的 Docker 容器内运行 PHP 服务器。我想将 Xdebug 连接到此进程,但无法找到为此使用的 IP。
在 Windows 和 Mac 上,该xdebug.idekey=host.docker.internal
变量会自动映射正确的 IP,但据我所知,这在 Linux 中不可用。
ip show route
我尝试过手动输入主机和docker-container 之间的 IP hostname -I
,但这些也不起作用(即使它们确实起作用,也只是临时修复)。我的容器也没有docker0
网络,一些教程想用它来连接,但我不确定那是什么或如何获得网络。
所以问题是:如何获得正确的 IP 地址并自动在我的配置中设置它(docker-file、docker-compose 或 php.ini 文件)
针对 docker-windows wsl2 的错误:“最大虚拟内存区域 vm.max_map_count [65530] 太低,增加到至少 [262144]”的解决方案是键入以下命令:
wsl -d docker-desktop
sysctl -w vm.max_map_count=262144
Run Code Online (Sandbox Code Playgroud)
问题是我需要在每次系统重新启动后执行它......
为什么每次重启后都会删除该设置?docker-desktop 容器每次都会重新构建吗?
我怎样才能使它永久?
有关 linux 而不是 Windows 10 wsl 上的 Docker for Desktop 的其他类似问题。
我在 Windows 10 中使用 Ubuntu-20.04 WSL2。
我想D:
在打开终端时接近,所以我将其添加到我的工作区中settings.json
:
"source": "Windows.Terminal.Wsl",
"colorScheme": "Monokai Night",
"startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\mnt\\d" //added this
Run Code Online (Sandbox Code Playgroud)
但它不起作用(此代码将我连接到默认值mnt/c/Users/username
)。
所以我也尝试了这个:
"source": "Windows.Terminal.Wsl",
"colorScheme": "Monokai Night",
"startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\mnt" //added this
Run Code Online (Sandbox Code Playgroud)
这是工作。
如何设置起始目录d
?
我正在使用 docker-composeWSL
环境中使用 docker-compose 。我注意到正在运行的 docker 容器创建的一些文件显示为 user=root 和 group=root。如何更改 docker-compose 以在当前 UID 和 GID 下创建新文件?
我注意到在WSL
bash shell 中,我可以作为普通用户删除 root:root 拥有的文件,而无需 sudo。相反,正在运行的 docker 容器无法删除文件,即使该文件不属于 root。
这些文件位于/mnt/c/projects-new/...
或位于 Windows 中c:\projects-new
.
/etc/wsl.conf
[network]
generateResolvConf = true
Run Code Online (Sandbox Code Playgroud)
在您提问之前,Linux 权限的元数据定义在/etc/fstab
:
LABEL=cloudimg-rootfs / ext4 defaults 0 0
C: /mnt/c drvfs defaults,metadata 0 0
Run Code Online (Sandbox Code Playgroud)
我在用着Win 10 20H2 (OS Buidl 19042.928) WSL Version 2
猫 /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 WSL2 上运行 puppeteer。我尝试过通过 VcXsvr 使用远程显示,但我的防火墙设置和主机进行了自定义更改,坦率地说我已经放弃看到https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-应用程序正在开发中。
因此,与此同时,我尝试使用以下测试代码直接连接到 Windows Chrome 安装:
const puppeteer = require('puppeteer');
const EXECUTABLE_PATH = '/mnt/c/Users/[username]/AppData/Local/Google/Chrome/Application/chrome.exe';
const USER_DATA_DIR = 'C:\\Users\\[username]\\AppData\\Local\\Google\\Chrome\\User Data';
const url = process.argv[2];
console.log(url);
if (!url) {
throw "Please provide URL as a first argument";
}
async function run () {
try {
const browser = await puppeteer.launch({
executablePath: EXECUTABLE_PATH,
userDataDir: USER_DATA_DIR,
headless: false,
ignoreDefaultArgs: ['--disable-extensions'],
});
const page = await browser.newPage();
await page.goto(url);
await page.screenshot({path: 'screenshot.png'});
browser.close();
} catch(err){
console.log(err)
}
}
run(); …
Run Code Online (Sandbox Code Playgroud) javascript google-chrome windows-subsystem-for-linux puppeteer wsl-2
wsl-2 ×10
windows-subsystem-for-linux ×5
docker ×2
linux ×2
ubuntu ×2
express ×1
go ×1
javascript ×1
mongodb ×1
node.js ×1
php ×1
puppeteer ×1
reactjs ×1
sql-server ×1
typescript ×1
vue.js ×1
windows-10 ×1
xdebug ×1
yocto ×1