win10安装轻量级虚拟机(三)

win10安装轻量级虚拟机

  • 引言
    • 文件同步
      • wsl中的ubuntu与宿主机同步
      • docker虚拟机与宿主机的文件同步
  • multipass
  • docker 虚拟机功能调试中的问题及解答
    • SSH连接问题
    • win下 ping 不同 docker 下的虚拟机
    • git 问题
      • log 显示乱码
      • 非 root 用户下拉远程仓时,提示错误
    • docker 环境问题
      • 虚拟机中安装价交叉编译环境
      • make 提示错误
  • 参考资料

引言

入了嵌入式一行之后,也接触到了嵌入式Linux,就无法避免在 win 系统中安装 Linux 虚拟机的情况,在入职初期依旧还是 VMware 或 Visual Box,这些传统的虚拟机功能稳定但是却比较笨重,且移植性欠佳(可能是笔者未很好掌握吧)。

这个时候就衍生了能不能将虚拟机上云的想法,很早之前接触过 hyper-v 以及 docker,就趁着这次机会将目前 win10 下支持的虚拟机简单的做了一下探索和实践。

根本需求也就是:希望在 win 上以虚拟机形式运行多个系统,且具有很好的移植性或云访问特性。

这个小专题的文章的关键词包括:
hyper-V; WSL; Hyper-V; docker; dockerhub; multipass

文件同步

wsl中的ubuntu与宿主机同步

win10安装轻量级虚拟机(三)_第1张图片

docker虚拟机与宿主机的文件同步

由于 wsl 与 windows 在同一级的虚拟层次,且windows相当于挂载在了 ubuntu 系统下,可以直接使用 docker cp 来进行文件复制
win10安装轻量级虚拟机(三)_第2张图片

multipass

待补充,不推荐,没有wsl方便,又不能像 docker 一样上云。

docker 虚拟机功能调试中的问题及解答

SSH连接问题

一般是未安装 SSH-Server 或服务未开启

apt-get install openssh-server # 安装ssh服务
sduo service ssh restart # 重启服务

win下 ping 不同 docker 下的虚拟机

git 问题

log 显示乱码

win10安装轻量级虚拟机(三)_第3张图片

git config --global i18n.commitencoding utf-8  #该命令表示提交命令的时候使用utf-8编码集提交

git config --global i18n.logoutputencoding utf-8 #表示日志输出时使用utf-8编码集显示

export LESSCHARSET=utf-8  #设置LESS字符集为utf-8

git config --global core.pager more

非 root 用户下拉远程仓时,提示错误

非 root 用户下拉时,显示

insufficient permission for adding an object to repository database .git/objects

这是文件归属权限的问题,运行下面的指令:

# 创建自定义用户
sudo adduser username

#output,根据响应的提示进行输入相应信息即可
Adding user `username' ...
Adding new group `username' (1001) ...
Adding new user `username' (1001) with group `username' ...
Creating home directory `/home/username' ...
Copying files from `/etc/skel' ...
#添加指定权限
sudo usermod -aG sudo username

# 更改git文件的归属问题,这里笔者直接改成了 root
sudo chown -R user:group xx.git

docker 环境问题

虚拟机中安装价交叉编译环境

64位 docker 虚拟机支持 32 位的交叉编译:

对于网络访问较慢的小伙伴,可以直接查看下面的截图,这里直接将关键信息以截图的方式放出来:

win10安装轻量级虚拟机(三)_第4张图片

make 提示错误

arm-linux-gnueabihf=g++:error trying to exec 'cc1plus': execvp: No such file or driectory
arm-eabi-gcc:error trying to exec 'cc1':execvp: No such file or directory

解决办法:将 WSL 版本替换为 2, 在 cmd 下或 windows terminal 中运行:

wsl -l -v

可查看到如下情况:
win10安装轻量级虚拟机(三)_第5张图片
将版本切换为 2, wsl --set-version Ubuntu 2 #将虚拟机Ubuntu的 WSL 版本切换为2

参考资料

  1. 简书 - Windows 安装和配置 WSL;
  2. I wonder if WSL will support the i386 (32 bit) program running later? · Issue #2468 · microsoft/WSL · GitHub;

你可能感兴趣的:(生产力工具,docker,虚拟机,wsl)