windows10 安装WSL2, Ubuntu,docker

AI- 通过docker开发调试部署ChatLLM

阅读时长:10分钟

本文内容: window上安装ubuntu虚拟机,并在虚拟机中安装docker,通过docker部署数字人模型,通过vscode链接到虚拟机进行开发调试.调试完成后,直接部署在云端即可.

什么是 WSL

WSL2(Windows Subsystem for Linux)是windows系统默认支持的功能,也就是Windows Linux子系统,类似于一台Linux虚拟机。

安装WSL2

WSL2是虚拟机,虚拟机(电脑)可以安装各个版本的Linux系统:Unbuntu, Centos, Debian

安装 Ubuntu 非常的简单:

  1. 管理员身份运行 Windows PowerShell
  2. 安装 Ubuntu
wsl --install
  1. 启用windows系统对WSL设置
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 重启你的电脑

  2. Win+q,在系统中输入ubuntu,搜索并打开
    在这里插入图片描述

  3. 打开后,由于是第一次启动,会提示创建登录用户名和密码:
    我设置的是 name: ifredom password: 123456
    在这里插入图片描述

关闭之后,如何再次启动?

  1. 方式1:依然是通过 Win+q ,在系统中输入 ubuntu ,搜索并打开
  2. 方式2:在命令行中,输入 WSL 即可

在这里插入图片描述


其他指令

# 查看已安装的子系统
wsl -l
# 查看子系统具体的版本号
wsl -l -v
# 设置以后安装Linux系统时,默认启用WSL2
wsl --set-default-version 2
# 查看所有可安装Linux版本列表
wsl.exe -l -o

windows10 默认安装版本 Ubuntu 2,你也可以安装其他版本 WSL

终端

使用 cmd 很不方便,且不美观,推介使用 windows terminal
Microsoft Store 中搜索 windows terminal, 需要注意的是:安装好之后, windows terminal在系统中的中文名为 终端,所以搜索时需要输入: 终端
在这里插入图片描述

wsl 中安装 docker

这一步目的:为了在 windows 系统上链接你的Ubuntu 系统,以便于在 VScode 中进行开发调试

  1. Windows 上的 Docker Desktop WSL 2
  2. WSL 上的 Docker 容器安装入门 | Microsoft Learn
# docker 是否安装成功. 打开 ubuntu
docker --version

在这里插入图片描述

常用指令

# 查看所有容器:
docker ps -a
# 查看所有镜像:
docker images

docker安装并使用某个镜像。以 nginx 为例:

# 安装 nginx 镜像
docker pull nginx
# 启动 名称为 nginx的容器,容器的镜像为刚下载的 nginx 镜像
docker run --name nginx -p 9696:80 -d nginx
# 谷歌浏览器访问地址:
http://localhost:9696

vscode 通过 SSH 远程连接子系统

vscode 安装 4 个插件:

  1. WSL
  2. Dev Containers
  3. Docker
  4. Remote - SSH

打开 Ubuntu ,在Ubuntu系统上启动 ssh 服务,即:

sudo apt-get update
sudo apt-get install openssh-server
sudo ps -e |grep ssh# 此步可省略,目的在于查看是否启动ssh服务,终端打印sshd字样说明启动了 
sudo service ssh start

在 Ubuntu 系统上初始化公钥,即:

ssh-keygen -t rsa -C "youremail@example.com"

然后 cd ~/.ssh 文件夹下,将公钥写入授权的key,即:

# 命令的作用: 将 `id_rsa.pub` 文件中的内容追加到 `authorized_keys` 文件中.
cat id_rsa.pub >> authorized_keys

查看当前目录下的文件:

ls

接着执行:

# 查看ip
ip addr
# eth0中的ip是你的地址

以上操作均在ubuntu中操作.

在windows中,打开vscode编辑器,vscode 点击左下角, 点击 conect-to-host
在这里插入图片描述

点击 add new SSH host,输入 username@ip地址,在我本地输入的就是:ifredom@192.168.88.99,一路输入密码, 勾选Linux系统,保存即可.

最终成功运行:
![[Pasted image 20230813182817.png]]


加V入群:elitepeace37

------ 如果文章对你有用,感谢右上角 >>>点赞 | 收藏 <<<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/43102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优漫动游零基础如何学习好UI设计

智能时代的来临&#xff0c;很多企业都越来越注重用户体验这一块&#xff0c;想要有一个吸引用户的好页面&#xff0c;UI设计师岗位不可或缺&#xff0c;如今越来越多的人想要学习UI设计技术&#xff0c;那么对于零基础小白如何学习好UI设计呢? 零基础小白如何学习好UI设计…

变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践

目录导读 变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践1. 什么是变更通知2. 变更通知的场景分析3. 变更通知的技术方案3.1 变更通知的技术实现方案 4. 变更通知的最佳实践总结5. 参考资料 变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践 1. 什么是变更通…

Ubuntu在自己的项目中使用pcl

1、建立一个文件夹&#xff0c;如pcl_demos&#xff0c;里面建立一个.cpp文件和一个cmake文件 2、打开终端并进入该文件夹下&#xff0c;建立一个build文件夹存放编译的结果并进入该文件夹 3、对上一级进行编译 cmake .. 4、生成可执行文件 make 5、运行该可执行文件 6、可视…

最强自动化测试框架Playwright(30)-JS句柄

在 Playwright 中&#xff0c;JSHandle 是一个表示浏览器中 JavaScript 对象的类。它提供了与网页中的 JavaScript 对象进行交互和操作的方法。 可以通过调用 Playwright中的 evaluateHandle 或 evaluate 方法来获取 JSHandle from playwright.sync_api import sync_playwrig…

微服务中间件-分布式缓存Redis

分布式缓存 a.Redis持久化1) RDB持久化1.a) RDB持久化-原理 2) AOF持久化3) 两者对比 b.Redis主从1) 搭建主从架构2) 数据同步原理&#xff08;全量同步&#xff09;3) 数据同步原理&#xff08;增量同步&#xff09; c.Redis哨兵1) 哨兵的作用2) 搭建Redis哨兵集群3) RedisTem…

金融语言模型:FinGPT

项目简介 FinGPT是一个开源的金融语言模型&#xff08;LLMs&#xff09;&#xff0c;由FinNLP项目提供。这个项目让对金融领域的自然语言处理&#xff08;NLP&#xff09;感兴趣的人们有了一个可以自由尝试的平台&#xff0c;并提供了一个与专有模型相比更容易获取的金融数据。…

Java根据List集合中的一个字段对集合进行去重

利用HashSet 创建了一个HashSet用于存储唯一的字段值&#xff0c;并创建了一个新的列表uniqueList用于存储去重后的对象。遍历原始列表时&#xff0c;如果字段值未在HashSet中出现过&#xff0c;则将其添加到HashSet和uniqueList中。 List<Person> originalList new Ar…

VS2015项目中,MFC内存中调用DLL函数(VC6生成的示例DLL)

本例主要讲一下&#xff0c;用VC6如何生成DLL&#xff0c;用工具WinHex取得DLL全部内容&#xff0c;VC2015项目加载内存中的DLL函数&#xff0c;并调用函数的示例。 本例中的示例代码下载&#xff0c;点击可以下载 一、VC6.0生成示例DLL项目 1.新建项目&#xff0c;…

mysql中的is null和空字符串

相比于oracle&#xff0c;mysql中的is null 和空坑就没那么多&#xff0c;直接写就行。 不为空 and (username is not null and username !)注&#xff1a; 不为空中间用的是and。 为空 and (username is null or username !)注&#xff1a; 为空中间用的是or。

java应用运行在docker,并且其他组件也在docker

docker启动redis容器 # create redis docker run -d --name redis-container -p 6379:6379 redis:latest创建java 应用 dockerfile FROM openjdk:17##Pre-create related directories RUN mkdir -p /data/etax/ms-app WORKDIR /data/etax/ms-appEXPOSE 10133 COPY ./target…

SQL Server Express 自动备份方案

文章目录 SQL Server Express 自动备份方案前言方案原理SQL Server Express 自动备份1.创建存储过程2.设定计划任务3.结果检查sqlcmd 参数说明SQL Server Express 自动备份方案 前言 对于许多小型企业和个人开发者来说,SQL Server Express是一个经济实惠且强大的数据库解决方…

Spring Framework中的Bean生命周期

目录 一.Bean生命周期的简介 1.基本概念 2.Spring生命周期的几大阶段 3.注意点及小结 4.生活案例 5.Spring容器管理JavaBean的初始化过程 二. Bean的单例选择与多例选择 1.单例选择与多例选择的优缺点 1.1单例模式的优点&#xff1a; 1.2单例模式的缺点&#xff1a; 1…

JDK 8 升级 JDK 17 全流程教学指南

JDK 8 升级 JDK 17 首先已有项目升级是会经历一个较长的调试和自测过程来保证允许和兼容没有问题。先说几个重要的点 遇到问题别放弃仔细阅读报错&#xff0c;精确到每个单词每一行&#xff0c;不是自己项目的代码也要点进去看看源码到底是为啥报错明确你项目引入的包&#x…

第三届“赣政杯”网络安全大赛 | 赛宁筑牢安全应急防线

​​为持续强化江西省党政机关网络安全风险防范意识&#xff0c;提高信息化岗位从业人员基础技能&#xff0c;提升应对网络安全风险处置能力。由江西省委网信办、江西省发展改革委主办&#xff0c;江西省大数据中心、国家计算机网络与信息安全管理中心江西分中心承办&#xff0…

Qt扫盲-QTableView理论总结

QTableView理论总结 一、概述二、导航三、视觉外观四、坐标系统五、示例代码1. 性别代理2. 学生信息模型3. 对应视图 一、概述 QTableView实现了一个tableview 来显示model 中的元素。这个类用于提供之前由QTable类提供的标准表&#xff0c;但这个是使用Qt的model/view架构提供…

MySQL 存储过程

create procedure 存储过程名 &#xff08;in | out | INPUT 参数名 参数类型&#xff0c;。。。&#xff09; 【characteristics 。。。】begin存储过程体end存储过程的参数类型 IN 、OUT、INPUT 都可以在一个存储过程带多个 没有参数&#xff08;无参数无返回&#xff09;仅…

ProGuard + SpringBoot3 + JDK17

1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.…

android平台的语音聊天助手源码

目录 1 android平台的语音聊天助手源码 1.1 Setting 1.1.1 onChildClick 1.1.2 if (groupPosition == 0) {// 语音识别设置 android平台的语音聊天助手源码 Setting onChildClick

神经网络基础-神经网络补充概念-11-向量化逻辑回归

概念 通过使用 NumPy 数组来进行矩阵运算&#xff0c;将循环操作向量化。 向量化的好处在于它可以同时处理多个样本&#xff0c;从而加速计算过程。在实际应用中&#xff0c;尤其是处理大规模数据集时&#xff0c;向量化可以显著提高代码的效率。 代码实现-以逻辑回归为例 i…

边缘网络的作用及管理工具

自从引入软件即服务 &#xff08;SaaS&#xff09; 以来&#xff0c;它一直引领着全球按需软件部署创新的竞赛&#xff0c;它提供的灵活性以及其云计算架构带来的易于集成使其成为交付业务应用程序的标准。 在 SaaS 模型中&#xff0c;最佳用户体验的三重奏涉及无缝设置、低延…