Linux虚拟机的替代品:Docker与WSL2上手笔记

目录

  • 安装Docker
    • 可能出现的问题
      • 内核需更新
        • Linux 内核更新包
        • 将 WSL 2 设置为默认版本
      • An error occurred
  • 安装镜像
    • 使用Microsoft Store安装所选的 Linux 分发
    • 手动安装镜像及文件夹的共享
      • Docker run 命令
  • Windows Terminal的安装
  • 在Windows Terminal中直接运行已有的容器

Windows 10 20H2


安装Docker

下载链接

可能出现的问题

内核需更新

在这里插入图片描述
根据旧版 WSL 的手动安装步骤步骤 4后做就行:

Linux 内核更新包

适用于 x64 计算机的 WSL2 Linux 内核更新包

如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:systeminfo | find “System Type”。 Caveat: 在非英文版 Windows 上,你可能必须修改搜索文本,对“System Type”字符串进行翻译。 你可能还需要对引号进行转义来用于 find 命令。 例如,在德语版中使用 systeminfo | find ‘“Systemtyp”’。
在这里插入图片描述

将 WSL 2 设置为默认版本

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

如果失败,可能需要事先以管理员方式启动cmdpowershell
使用

netsh winsock reset 

命令重置windows网络设置

An error occurred

在这里插入图片描述
以管理员方式启动cmdpowershell
使用

netsh winsock reset 

命令重置windows网络设置

安装镜像

使用Microsoft Store安装所选的 Linux 分发

打开Microsoft Store,并选择你偏好的 Linux 分发版。
在这里插入图片描述
在分发版的页面中,选择“安装”。
在这里插入图片描述
第一次启动将会提示输入用户名和密码。

手动安装镜像及文件夹的共享

Docker run 命令

摘自Docker run 命令 —— 菜鸟教程
docker run :创建一个新的容器并运行一个命令

语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“名称”: 为容器指定一个名称;
–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=“ritchie”: 设置环境变量;
–env-file=[]: 从指定文件读入环境变量;
–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
–link=[]: 添加链接到另一个容器;
–expose=[]: 开放一个端口或一组端口;
–volume , -v: 绑定一个卷

以管理员方式启动cmdpowershell
使用

docker run -it --name robot_controller -v D:\Work\Robot\Workspace\openRCio-stu:/openRC ansible/ubuntu14.04-ansible /bin/bash

拉取ubuntu14.04-ansible镜像,创建一个名为robot_controller的容器并运行,其中D:\Work\Robot\Workspace\openRCio-stu为要共享文件夹的Windows下的路径,/openRC为该文件夹映射在容器内的路径,镜像名为ansible/ubuntu14.04-ansible
如下图可见,已成功共享该文件夹
在这里插入图片描述
在这里插入图片描述

Windows Terminal的安装

在Microsoft Store中安装就行。
在这里插入图片描述
在这里插入图片描述
设置里可设定外观
在这里插入图片描述
打开Ubuntu
在这里插入图片描述
在这里插入图片描述

在Windows Terminal中直接运行已有的容器

在cmd/powershell中先使用

docker ps -a

命令查看已有容器的ID
在这里插入图片描述
Windows Terminal新建一个配置,命令行为

docker start -i 容器ID

在这里插入图片描述
此后便可在下拉菜单中直接启动之前的容器
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Mac/Linux/Centos终端中上传文件到Linux云服务器

Mac/Linux/Centos终端中上传文件到Linux云服务器 1、mac上传文件到Linux服务器 scp 文件名 用户名服务器ip:目标路径如:scp /Users/test/testFile testwww.linuxidc.com:/test/ 2、mac上传文件夹到Linux服务器,与上传文件相比多加了-r scp -r 文件夹目录…

flask需求文件requirements.txt的创建及使用

1.简介 Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号用以新环境部署。 2.进入虚拟环境然后输入pip freeze > requirements.txt 每次安装或者升级了包之后最好也一并使用这个命令更新这个文件。 需求文件的内容示例…

DHT(Distributed Hash Table,分布式哈希表)

DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络。 DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法。 在不需要服务器的情况下,每个客户端负责一个小范围的路由,并…

Delphi 自带的 Base64 编解码函数

今天帮别人解决一个关于 Base64 编解码的问题,竟然发现 Delphi 自带了 Base64 编解码的单元,叫 EncdDecd,这名字很拗口而且不直观,估计这是一直很少人关注和知道的原因。这个单元提供两套四个公开函数:对流的编解码&am…

微信分享相关

一、微信js-SDK说明文档 1.概述 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付…

【联盛德W806上手笔记】一、开发环境和烧录程序

目录简介芯片外观MCU 特性安全特性低功耗模式芯片结构管脚定义极限参数开发环境SDK的获取从官网获取从Q群获取iosetting大佬 维护的wm-sdk-w806打开工程编译固件烧录现象Windows 10 20H2 HLK-W806-V1.0-KIT WM_SDK_W806_v0.6.0 引自《W80X_MCU_快速入门V0.2》、《W806 MCU 芯片…

MySQL的mysql_insert_id和LAST_INSERT_ID

摘要:mysql_insert_id和LAST_INSERT_ID二者作用一样,均是返回最后插入值的ID 值 1 mysql_insert_id 一、PHP获取MYSQL新插入数据的ID mysql_insert_id(); 二、 php5和新增了获取最新插入值的ID的函数:mysqli_insert_id($conn),和…

Mac os + Flask + PyCharm python开发环境集成

1. 打开mac自带终端安装virtualenv 执行 sudo easy_install virtualenv / sudo pip install virtualenv 2.安装完 virtualenv ,打开一个 shell ,创建自己的环境。 $ mkdir myapp $ cd myapp $ virtualenv venv New python executable in env/bin/py…

zookeeper注意几点

为什么80%的码农都做不了架构师?>>> Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储…

【51单片机快速入门指南】7:片上EEPROM

目录硬知识IAP及EEPROM新增特殊功能寄存器介绍EEPROM空间大小及地址小常识大建议常见问题示例程序EEPROM.cEEPROM.h测试程序main.c普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《STC89C52系列单片机器件手册》 ST…

Flask从入门到做出一个博客的大型教程

https://blog.csdn.net/u014793102/article/category/7661475

Effective C++ 条款03:尽可能使用const

场景一 用于修饰指针 char greeting[] "Hello"; char* p greeting; // non-const pointer, non-const data const char* p greeting; // non-const pointer, const data char* const p greeting; // const pointer, non-const data co…

wndows系统命令总结

window8系统下 打开运行窗口----------鼠标放到任务栏的windows图标下,右击,弹出菜单中如上图或者 打开运行窗口---------按“WINR”键, cmd-------打开命令窗口 services.msc--------打开服务命令 calc-----------启动计算器 dvdplay-------…

【RK3399Pro学习笔记】三、Debian 9 安装 ROS (Thinker Edge R)

目录配置源设置 Key安装初始化rosdep环境配置测试安装rosinstall卸载平台:华硕 Thinker Edge R 瑞芯微 RK3399Pro 固件版本:Tinker_Edge_R-Debian-Stretch-V1.0.4-20200615 参考资料: RK3399(Debian9 - stretch) 安装 ROS Lunar —— WB893…

s:iterator标签的使用

1.在说明s:iterator标签的使用前,先了解下struts2中的Value Stack。 这里参考了webwork中对Value Stack的描述,由于struts2是在webwork的基础上进行升级的, 因此webwork对于Value Stack的表述同样适用于struts2。在这里不描述Value Stack具…

perl学习(二)

2019独角兽企业重金招聘Python工程师标准>>> 在perl中又两个必须搞清楚,就是标量值和标量变量,列表和数组。 直接量就是数值在perl程序代码中的表现方式,就是直接写在程序里的数据,是标量值。如12&a…

【RK3399Pro学习笔记】四、ROS 创建工作空间与功能包

目录创建工作空间编译工作空间功能包创建功能包编译功能包设置环境变量检查环境变量平台:华硕 Thinker Edge R 瑞芯微 RK3399Pro 固件版本:Tinker_Edge_R-Debian-Stretch-V1.0.4-20200615 记录自【古月居】古月ROS入门21讲 | 一学就会的ROS机器人入门教…

hip-hop初探

啥都不说了,上两张图片先 1、使用hiphop的 2、不使用这玩意的 都是前端部署nginx,转发的后面php的 hhvm的配置文件 /etc/hhvm.hdf 目前结论:facebook的这玩意可能适用于facebook业务,对于我的业务来说反而拖后腿转载于:https://ww…

表达式求值(二叉树方法/C++语言描述)(二)

表达式二叉树节点的数据可能是运算数或运算符,可以使用一个联合体进行存储;同时还需要一个变量来指示存储的是运算数还是运算符,可以采用和栈方法求值中一样的枚举类型TokenType: 1 typedef enum2 {3 BEGIN,4 NUMBER,5 …