window子系统使用及问题汇总

2023-11-08


最近在使用windows上的docker时感觉使用很不爽,虽然有图形化界面加持但是感觉就是启动慢,暂用资源多,还遇到一些奇奇怪怪的bug,间接性启动不了,容易卡死,容器也莫名其妙的端口冲突一查还找不到,干脆卸载了。 \

安装

  • 在window10专业版以上的基础上(别的版本不清楚,只用过win10和win11专业版)安装docker桌面版的人,都安装过wsl2。没有装过这个的请到这个链接中根据提示安装,或百度安装。\

  • 在控制面版/程序和功能/启用或关闭Windows功能中开启适用于Linux的Windows子系统
    适用于Linux的Windows子系统

  • 安装好之后进入微软商店,开始选择一款linux下载,本人使用的是ubuntu18。

在这里插入图片描述

点击下载安装后打开cmd输入wsl即可进入ubuntu子系统。初次进入的界面应该有设置密码操作,这部操作没有设置root的密码的使用sudo passwd然后输入当前账户的密码获取权限后即可设置root密码。

配置子系统的资源大小

在window系统的C:/user/XXX的用户目录下创建一个.wslconfig的配置文件,内容如下:

[wsl2]
memory=4GB
processors=2
swap=0
localhostForwarding=true

上面配置的大概就是说内存4g,cpu核数2,交换内存不要,觉得设置不合适的可以根据官方文档修改。

切换默认源

默认的源是比较慢的,这里切换到华为的源,下载软件速度快一点。

#备份默认apt源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
#下载华为源
sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
# update
apt-get update

安装docker

本人的出发点是windows的docker用的不爽才安装的这个子系统,不需要的可跳过这里。

#安装软件包依赖
sudo apt install apt-transport-https ca-certificates curl software-properties-common
# 在系统中添加Docker的官方密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#添加Docker源,选择stable长期稳定版
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
# update
sudo apt update
# 查看可以安装的Docker版本
sudo apt-cache policy docker-ce
# 下载社区版docker
sudo apt install docker-ce
#查看安装情况
docker
# 启动Docker服务
sudo systemctl start docker//wsl 不好使换成service
# 开机自启
sudo systemctl enable docker
# 配置加速 去阿里云配置自己的加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://wh9z3wm8.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 创建一个docker网络,方便后续容器间的通信
docker network create my-net
# 查看已有的docker网络
docker network ls

解决wsl无法使用systemctl的问题

跟着上面安装docker获取自行安装ssh等服务的盆友应该已经发现了这个系统是有问题的,它的systemctl指令用不了,当然使用service也可以用,但是这个毕竟是ubuntu16之后以及centos7经常使用的指令,还是解决一下吧。wsl是不支持这个指令的使用的,在网上找了一个解决方案。

git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh

运行脚本成功后在window以管理员模式运行PowerShell,重启LxssManager

net stop LxssManager
net start LxssManager

再次进入linux子系统就可以使用了。

子系统访问windows系统中的文件

切换到/mnt挂载目录下就可以看到c,d这些就是c盘,d盘呀。

window访问子系统的文件

win11的盆友打开文件资源管理器应该可以看到这样一个界面,剩下的就随便点了。
在这里插入图片描述

win10的盆友可能没有,那就用命令装#吧,毕竟我用的不多,指令可以用scp或者sftp,如下:

# scp
scp [参数] 源地址  目标用户名@目的ip:目标地址
#示例在ubuntu子系统中将ubuntu-wsl2-systemd-script目录下的全部文件复制到D盘下的a文件夹里
scp -r ./ubuntu-wsl2-systemd-script/ ffd@192.168.129.62:d:/a/
#sftp 
sftp 目标用户名@目的ip
#登录之后的指令不知道的就百度一下吧,很简单

总结

折腾半天感觉好像没个啥能惊艳的地方,直接用虚拟机不就行了码,而且还可能遇到奇奇怪怪的问题自己解决不了,那有啥意义呢。我感觉window子系统有下面这些好处。

  • 速度快,相比于虚拟机真的快的多,一两秒就启动了,比windows版的docker也快好多

  • 与window搭配,可以看到win11下已经有了对应的文件夹管理了,相比于虚拟机的文件互传,目录挂载mnt和win11的文件夹管理显的更加方便

  • 随着软件的升级,子系统会慢慢被三方软件兼容,比如idea,windterm,虽说鸡肋,但虚拟机是不会有这些功能的。

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A5cEjtgY-1661245644168)(D:\home\document\node\images\image-20220823165220969.png)]

  • 启用方便,关闭方便,在cmd中直接输入wsl就可以进入,要关闭可以直接shutdown就行,不用依赖于任何虚拟机软件

缺点:它的缺点很明显,对c盘小的盆友很不友好,我没有找到它如何指定安装位置。缺少图形化界面,这个其实不算缺点它是可以安装图形化界面的,用linux的人应该用图形化界面的不多,需要的自行百度安装。

使用体验就这些了,用了一段时间了,没啥大问题。后续有新体会再补充。

the end 2022/8/23

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

window子系统使用及问题汇总 的相关文章

  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • Keycloak - 自定义 SPI 未出现在列表中

    我为我的 keycloak 服务器制作了一个自定义 SPI 现在我必须在管理控制台上配置它 我将 SPI 添加为模块 并手动安装 因此我将其放在 module package name main 中 并包含 module xml 我还将其放
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe

随机推荐

  • Python毕业设计 机器学习新闻算法研究与实现

    文章目录 0 前言 简介 本文章博主将介绍 参与及比较算法 先说结论 实现过程 数据爬取 数据预处理 CNN文本分类 其他分类方法更新中 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达
  • C/C++实现协程及原理(详细完整版)-架构师篇

    一 协程 Coroutine 简介 协程 又称微线程 纤程 英文名Coroutine 协程的概念很早就提出来了 但直到最近几年才在某些语言 如Lua 中得到广泛应用 子程序 或者称为函数 在所有语言中都是层级调用 比如A调用B B在执行过程
  • drools 7.x 加载指定的决策表

    git https github com lccbiluox2 drools test git 1 决策表 位置 Users lcc IdeaProjects drools test src main resources com drool
  • Python异步请求:处理并发任务的结果

    Python异步请求 处理并发任务的结果 处理并发任务的结果 在异步编程中 处理并发任务的结果可能会有所不同 以下是几种常见的处理方式 使用asyncio as completed asyncio as completed 函数返回一个迭代
  • 场景题之最快返回结果

    场景题之最快返回结果 问题描述 输入中文 最快从百度翻译 谷歌翻译 有道翻译获取结果返回 代码实现 思路 采用CompletableFuture实现 多个CompletableFuture可以串行执行 也可以并行执行 其中anyOf 方法只
  • 插入排序(Insertion-Sort)-- 初级排序算法

    1 插入排序 Insertion Sort 插入排序 Insertion Sort 的算法描述是一种简单直观的排序算法 它的工作原理是通过构建有序序列 对于未排序数据 在已排序序列中从后向前扫描 找到相应位置并插入 算法描述 一般来说 插入
  • doGet和doPost、Cookie和Session的原理及区别、Spring框架

    一 doGet和doPost 1 doGet GET调用用于获取服务器信息 并将其做为响应返回给客户端 当经由Web浏览器或通过HTML JSP直接访问Servlet的URL时 一般用GET调用 public class doGet ser
  • 为分类数据添加计数表(R语言实现)

    为分类数据添加计数表 R语言实现 在数据分析和统计学中 我们经常需要对分类变量进行计数 并以表格的形式展示分类的频数 R语言是一种功能强大的数据分析工具 提供了各种函数和包来处理和可视化数据 在本文中 我将向您展示如何使用R语言为划分后的分
  • Android Studio相关知识

    一 如何更新android studio 打开Help gt Check For Updates 或 打开Settings gt 搜索Updates 找到按钮Check Now 二 如何更新android studio的adb 方案一 直接
  • 【SMD & NSMD】

    正确的PCB焊盘设计对于有效地将元件焊接到电路板至关重要 对于裸焊盘组装 有两种常见的焊接方法 阻焊层定义 SMD 与非阻焊层定义 NSMD 每种方法都有自己的特点和优势 SMD Solder Mask Defined Pad 是由阻焊层来
  • Web3与智能合约交互实战

    写在前面 在最初学习以太坊的时候 很多人都是自己创建以太坊节点后 使用geth与之交互 这种使用命令行交互的方法虽然让很多程序员感到兴奋 黑客帝国的既视感 但不可能指望普通用户通过命令行使用Dapp 因此 我们需要一种友好的方式 比如一个w
  • 计算机物联网软件工程,关于计算机物联网的应用分析

    龙源期刊网 http doc 100lw com 关于计算机物联网的应用分析 作者 曹俊娜 来源 电子技术与软件工程 2016年第03期 摘要随着智能设备的不断推出和移动互联网的发展 计算机物联网技术越来越被人们所熟知 物联网技术区别于传统
  • 给网站、博客文章添加阅读次数统计,我用两行代码 搞定计数

    本文转载于不蒜子 一 安装脚本 必选 要使用统计次数必须在页面中引入busuanzi js 目前最新版如下 任何类型的个人站点使用 如果你是用的hexo 打开themes 你的主题 layout partial footer ejs添加上述
  • ! [rejected] main -> main (fetch first) error: failed to push some refs to

    rejected main gt main fetch first error failed to push some refs to 报错信息 To github com raxx xxar git rejected main gt ma
  • 快速WordPress个人博客并内网穿透发布到互联网

    快速WordPress个人博客并内网穿透发布到互联网 文章目录 快速WordPress个人博客并内网穿透发布到互联网 我们能够通过cpolar完整的搭建起一个属于自己的网站 并且通过cpolar建立的数据隧道 从而让我们存放在本地电脑上的网
  • @EnableCircuitBreaker found, but there are no implementations. Did you forget to include a starter?

    java lang IllegalStateException Annotation EnableCircuitBreaker found but there are no implementations Did you forget to
  • ChatGPT vs. Bing vs. Bard

    随着 2022 年 ChatGTP 的推出 人工智能聊天机器人的世界突然走上了一条新道路 如今 密切关注 AI 的人都知道 不同公司推出了几款产品 从谷歌拥有自己的 Bard AI 到微软发布新的 Bing AI Chat 再到 OpenA
  • 6.6开发社区搜索功能

    业务层 新建ElasticsearchService类 package com nowcoder community service import com nowcoder community dao elasticsearch Discu
  • 【电源】DC-DC电路中的伏秒平衡原理

    上一篇我们科普了开关电源 在提到的开关电源中我们常用也就DC DC电路 所以从今天开始将进入到我们的DC DC电路专题 在DC DC电路应用中 我们很多工程师比较难理解BUCK BOOST的升降压区别 或者原理看完就忘又区分不开 那是因为没
  • window子系统使用及问题汇总

    window子系统使用及问题汇总 安装 配置子系统的资源大小 切换默认源 安装docker 解决wsl无法使用systemctl的问题 子系统访问windows系统中的文件 window访问子系统的文件 总结 最近在使用windows上的d