精华内容
下载资源
问答
  • win10 wsl2 docker

    2021-03-06 16:23:58
    由于在最新的win10 发行版中,更新的wsl2支持了GPU cuda 计算。而在最新的docker 中也支持了将wsl2 作为后端引擎, 这样一来,直接在win10 下安装docker,并下载启动镜像就能调用GPU。 只能说这一波操作太6, 微软...

    由于在最新的win10 发行版中,更新的wsl2支持了GPU cuda 计算。而在最新的docker 中也支持了将wsl2 作为后端引擎,

    这样一来,直接在win10 下安装docker,并下载启动镜像就能调用GPU。

    只能说这一波操作太6, 微软牛逼,docker 牛逼!

    具体做法如下,首先升级win10 到最新版,接着安装从docker 官网安装docker for windows

    安装完成之后,打开docker 然后选择

    即可。

    随后即可在命令行中用docker 命令拉去docker镜像

    docker pull  nvidia:10.2

    然后启动

    使用下面的命令
    docker run -d -it --name="centos"  --gpus all mytorch:v1 /bin/bash

     即可调用到GPU,

    随后安装pytorch

    pip install torch

    展开全文
  • Docker Desktop(WSL2)修改镜像存储位置 因为我使用的是WSL2的版本,所以docker desktop在安装的时候创建两个wsl子系统,使用命令wsl -l -v --all: docker-desktop是存放程序的,docker-desktop-data是存放镜像的,...

    Docker Desktop(WSL2)修改镜像存储位置

    因为我使用的是WSL2的版本,所以docker desktop在安装的时候创建两个wsl子系统,使用命令wsl -l -v --all:
    在这里插入图片描述

    docker-desktop是存放程序的,docker-desktop-data是存放镜像的,这两个wsl子系统都是默认放在系统盘的。

    现将这2个存储文件迁移至其他盘(比如:D:\system\wsl)的流程如下:

    1.导出wsl子系统镜像:

    wsl --export docker-desktop D:\system\wsl\docker-desktop\docker-desktop.tar
    wsl --export docker-desktop-data D:\system\wsl\docker-desktop-data\docker-desktop-data.tar
    

    2.删除现有的wsl子系统:

    wsl --unregister docker-desktop
    wsl --unregister docker-desktop-data
    

    3.重新创建wsl子系统:

    wsl --import docker-desktop D:\system\wsl\docker-desktop D:\system\wsl\docker-desktop\docker-desktop.tar --version 2
    wsl --import docker-desktop-data D:\system\wsl\docker-desktop-data D:\system\wsl\docker-desktop-data\docker-desktop-data.tar --version 2
    
    展开全文
  • Win10 WSL2 安装Docker

    2020-09-04 10:35:23
    背景 由于新款Mac性价比走低,近期转为使用Windows作为主力开发系统...直到近期了解到Win10 2004正式版版本支持WSL2,问题得到了完美的解决。WSL2相比WSL1来说可以完美支持Docker。与WSL1的模拟Linux API不同的是,WSL

    背景

    由于新款Mac性价比走低,近期转为使用Windows作为主力开发系统。但是在开发过程中需要上Linux测试,或者说部署一些服务,例如MySQL,Nexus OSS等。本人又是一个Docker重度依赖者。之前一直是长期在Windows下启动一个Linux虚拟机辅助开发操作。占用大量磁盘内存资源不说,操作和维护也极为繁琐。

    直到近期了解到Win10 2004正式版版本支持WSL2,问题得到了完美的解决。WSL2相比WSL1来说可以完美支持Docker。与WSL1的模拟Linux API不同的是,WSL2采用在Hyper-V虚拟机中运行的方案。可以说WSL2和原汁原味的Linux已经十分接近。本人实验了一番,安装部署成功,将整个步骤分享给大家。

    步骤

    下面为大家详细介绍具体的操作步骤。

    更新 Win10 到2004版本

    使用Windows Update自动更新到2004版本。如果没有检测到更新,可以去微软官网下载“易升”工具并安装运行。工具会检测到更新并安装。

    启用Linux子系统

    打开 控制面板 -> 程序 -> 启用或关闭Windows功能。找到“适用于Linux的Windows子系统”和“虚拟机平台”,勾选这两项之后确定,并重新启动计算机。

    切换系统WSL默认版本到2

    使用管理员用户打开CMD,运行:

     

    wsl --set-default-version 2
    

    注意,有可能会出现如下提示:

     

    WSL 2 需要更新其内核组件。有关信息,请访问 https://aka.ms/wsl2kernel
    

    出现这个提示,说明需要更新WSL2的内核。按照提示打开https://aka.ms/wsl2kernel链接。点击下图中的下载链接,下载并安装WSL2内核。

    WSL2内核下载链接

     

    安装Ubuntu发行版

    打开Microsoft Store,搜索ubuntu,界面如下所示:

     

    Ubuntu搜索页面

     

    根据自己的需要,选择对应的Ubuntu版本并安装。
    完成之后在开始菜单会出现Ubuntu菜单项。打开它,Ubuntu将会进行初始化操作。等待几分钟后按照提示,为Ubuntu设置用户名和密码。
    最后,我们需要验证Ubuntu是否在WSL2的环境下启动。以管理员用户打开CMD,执行:

     

    wsl -l -v
    

    如果看到如下信息:

     

      NAME            STATE           VERSION
    * Ubuntu-20.04    Running         2
    

    说明Ubuntu在WSL2环境下运行。到此为止安装完毕。
    如果发现VERSION为1,说明Ubuntu运行在WSL1下。需要手工切换。
    首先关闭WSL下运行的Linux,执行:

     

    wsl --shutdown
    

    然后执行:

     

    wsl --set-version <Linux发行版名称> 2
    

    其中Linux发行版名称为前面安装的Linux名称,可以通过wsl -l -v命令查看。执行命令后等待片刻。等命令行提示转换完成,我们已经成功将Linux切换到WSL2环境。

    安装Docker

    首先进入Ubuntu shell,更换Ubuntu官方源为国内源,加快下载速度。执行。

     

    vim /etc/apt/sources.list
    

    将内容替换为下方:

     

    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
    deb http://mirrors.aliyun.com/ubuntu/ focal universe
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
    deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
    deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
    deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse
    

    接下来添加Docker源:
    依次执行如下命令:

     

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    sudo add-apt-repository \
       "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
       $(lsb_release -cs) \
       stable"
    
    sudo apt update
    

    配置完成软件源之后下一步是安装Docker,命令如下:

     

    sudo apt install -y docker-ce
    

    最后一个步骤,启动Docker daemon。但是此处有一个问题,WSL2经过测试无法使用systemctl命令(此问题已经解决,参见博客末尾FAQ),因此我们使用service命令启动Docker daemon。命令如下所示:

     

    sudo service docker start
    

    至此,Docker 在WSL2下安装完毕。

    注:WSL2 Docker最爽的地方是和宿主机Win10共享network,我们在宿主机Win10使用localhost加端口号就可以访问Docker中对应container中的服务,十分方便。

    关闭虚拟机

    WSL2实际上是在虚拟机中运行。我们一旦进入WSL2 Linux的命令行,虚拟机会自动启动运行。如果我们查看任务管理器,会发现一个Vmmem进程。如下所示:

     

    Vmmem进程

     

    该进程是虚拟机的进程。它比较占内存。不使用WSL2的时候我们可以关闭它以节省内存。关闭WSL2 Linux的方法如下。使用管理员打开CMD,运行:

     

    wsl --shutdown
    

    卸载发行版

    有时候某个Linux发行版不再使用,或者是环境被搞坏需要重装,这时候我们可以卸载掉这个Linux发行版。方法如下。
    首先使用:

     

    wslconfig /l
    

    命令查看系统内安装的Linux发行版。
    然后使用:

     

    wslconfig /u <发行版名称>
    

    卸载掉指定的发行版Linux。

    和宿主机Win10文件系统相互访问

    在Win10下访问Linux子系统文件

    进入CMD或者PowerShell,输入:

     

    cd \\wsl$\Ubuntu-20.04\
    

    可以进入到Linux子系统根目录。如下图所示:

     

    CMD进入Linux子系统根目录

    或者打开文件资源管理器,在地址栏输入\\wsl$\Ubuntu-20.04,也可以跳转到Linux子系统根目录。

    文件资源管理器进入Linux子系统根目录

     

    Linux子系统访问Win10文件

    进入Linux子系统运行df -h,看到如下输出:

    df -h输出


    注意观察后两行。本人电脑有两个分区。/mnt/c/mnt/d正好分别对应本机的C盘和D盘。

     

    和VMWare的共存问题

    目前VMWare 15版本无法在启用Hyper-V虚拟机,即启用WSL2的Win10上运行。但是经过本人实验,VMWare最新的测试版是可以和Hyper-V共存的。下面是测试版VMWare的下载链接:
    https://download3.vmware.com/software/wkst/file/VMware-workstation-full-e.x.p-16227267.exe
    下载安装包之后,按照向导提示升级安装VMWare即可。该版本VMWare可以和WSL2完美共存。

    Docker Desktop for Windows

    后来发现Docker Desktop windows版已经能够支持WSL作为Docker Engine运行,可以同时支持在Linux和Windows命令行下操作docker,这样远比前文中单独安装Linux Docker使用起来灵活。下面将安装Docker Desktop for Windows的方法分享。

    1. 浏览器打开https://www.docker.com/products/docker-desktop
      点击Download for Windows (stable),下载Docker安装程序。

    2. 确保WSL内的Docker已经卸载,如果没有卸载,可以执行:

     

    sudo apt remove docker-ce
    sudo apt remove docker-ce-cli
    
    1. 双击下载的安装程序安装,记住选择使用WSL作为Docker引擎。

    2. 在Windows注销当前用户重新登录。到此Docker Desktop for Windows安装完毕。

    注意:如果发现在WSL下无法执行docker命令,可以通过如下操作打开:
    进入Docker Desktop的settings,如下所示:

     

    Settings界面

    依次点击Resources -> WSL INTEGRATION,打开右侧的Ubuntu开关,点击对话框右下角的Apply & Restart按钮

    迁移WSL 到非系统盘

    默认WSL总是安装到C盘,这样对于C盘空间紧张的用户完全不友好。

    我们可以使用LxRunOffline工具来迁移WSL到其他磁盘分区。

    LxRunOffline的下载链接:https://github.com/DDoSolitary/LxRunOffline/releases。在Win10 PowerShell运行需要下载LxRunOffline-vx.x.x-msvc.zip版本。解压到任意目录即可使用。

    LxRunOffline是一个第三方WSL Linux发行版管理工具,可以认为是wsl命令的增强版。它可以安装和卸载Linux发行版,迁移,复制,导入导出和设置环境变量等。具体的使用帮助可执行.\LxRunOffline.exe \h查看命令介绍。

    迁移过程分为3步:

    1. 获取准备迁移的发行版名称。执行:

     

    PS C:\Users\xxx\Desktop> .\LxRunOffline.exe list
    Ubuntu-20.04
    

    获取系统当前已安装的发行版。例子中返回的发行版名称为Ubuntu-20.04

    1. 执行迁移命令。格式如下:

     

    .\LxRunOffline.exe m -n <发行版名称> -d <目标路径>
    

    比如我们要将Ubuntu-20.04移动到D:\Ubuntu-20.04,执行如下命令:

     

    .\LxRunOffline.exe m -n Ubuntu-20.04 -d D:\Ubuntu-20.04
    

    等待命令执行完毕返回。

    1. 查看迁移后发行版的安装路径。执行:

     

    PS C:\Users\xxx\Desktop> .\LxRunOffline.exe di -n Ubuntu-20.04
    D:\Ubuntu-20.04
    

    返回的安装位置是D:\Ubuntu-20.04,说明迁移成功。

    FAQ

    systemctl命令无法使用

    现象为在命令行执行systemctl命令,报如下错误:

     

    System has not been booted with systemd as init system (PID 1). Can't operate.
    Failed to connect to bus: Host is down
    

    参考了https://forum.snapcraft.io/t/running-snaps-on-wsl2-insiders-only-for-now/13033之后给出如下解决方案:

    1. 安装daemonize和fontconfig

     

    apt install -y fontconfig daemonize
    
    1. 编辑/etc/profile脚本,加入如下内容:

     

    SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
    
    if [ -z "$SYSTEMD_PID" ]; then
       sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
       SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
    fi
    
    if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then
        exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME
    fi
    
    1. 修改/etc/sudoers文件,加入如下内容:

     

    %sudo ALL=(ALL) NOPASSWD: /usr/sbin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
    %sudo ALL=(ALL) NOPASSWD: /usr/bin/nsenter -t [0-9]* -a su - [a-zA-Z0-9]*
    
    1. 执行source /etc/profile或者是重新打开terminal,执行systemctl验证是否能够正常操作。

     

    展开全文
  • win10 wsl2 docker端口映射不成功

    千次阅读 2020-07-10 18:50:00
    win10 wsl2 docker端口映射不成功 本人docker是安装在wsl2上的 问题 今天在学习elasticsearch,使用以下命令启动 elasticsearch ➜ docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -v /home/...

    win10 wsl2 docker端口映射不成功

    本人docker是安装在wsl2上的

    问题

    今天在学习elasticsearch,使用以下命令启动 elasticsearch

    ➜  docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins  -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
    

    启动成功后,

    curl localhost:9200一直取不到数据

    然后google很久

    发现可能是Hyper-v占用了默认端口

    在cmd使用一下命令查看

    netsh interface ipv4 show excludedportrange protocol=tcp
    

    可以发现目标端口在start Port和End Port之间

    这里是我修复过的

    image-20200710184722952

    解决步骤

    管理员运行cmd命令提示符 输入一下指令

    • 先禁用Hyper-V 需要重启计算机
    dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
    
    • 重启完毕,同样使用管理员cmd 设置你需要的端口(如果不先禁用Hyper-V 执行该命令无效)
    netsh int ipv4 add excludedportrange protocol=tcp startport=2181 numberofports=1
    
    • 在执行以下命令
    dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
    

    重启完毕,即可成功绑定端口

    在使用命令查看一下绑定端口的状态

    netsh interface ipv4 show excludedportrange protocol=tcp
    

    image-20200710184722952

    项目开发中,可能会存在其他端口被占用,如果找不到占用的进程,可以尝试看Hyper-v是否占用了。

    展开全文
  • Win10家庭版安装docker背景WSL方式安装(与WSL2可选其一)系统要求伪装成win10专业版开启Containers开启Hyper-VWSL2方式安装(与WSL可选其一)系统要求开启虚拟机平台安装WSL2内核安装Docker for Windows问题处理...
  • wsl --export docker-desktopd:\docker\docker-desktop.tar wsl --export docker-desktop-data d:\docker\docker-desktop-data.tar 注销镜像 wsl --unregisterdocker-desktop wsl --unregisterdocker-desktop-...
  • Win10 WSL2 安装Docker部署Redash中文版安装说明1 安装WSL22 安装Ubuntu18.04LTS3 安装Redash1、基础环境搭建2、下载源码初始化3、启动Docker自动安装执行4、进入浏览器PS:启动系统&初始设置 安装说明 相比...
  • Docker学习笔记安装(win10)配置阿里镜像源使用 安装(win10) 访问Docker官网,下载安装包后直接安装(如果需要更新WSL内核,按照Docker的提示信息安装更新即可),安装完毕后在CMD下执行命令 docker version 查看...
  • 前提是Win10已经安装好WSL2,且linux发行版已经安装docker 安装wsl2host wsl2host下载地址(https://github.com/shayne/go-wsl2-host/releases) 下载完成后,以管理员身份运行命令提示符cmd,安装过程如下: > ....
  • 前言windows10目前推出了WSL2,相对于WSL采用API转换的方式, WSL2 则完全不同,win10 开始内置了一个轻量级虚拟机,经过不断的优化,这个虚拟机实现了与 windows 的高度集成,实现了虚拟机的高性能运行,WSL2 便是...
  • win10 wsl2安装docker教程 亲测可用哦

    千次阅读 2020-05-30 10:42:25
    首先要说明一下 ,必须使用2004版本 支持wsl2 如何查看是否支持wsl2 可以直接使用命令 wsl --set-default-version 2 ,如果不识别 则认为当前系统不支持wsl2 必须先执行wsl --set-default-version 2在进行下面操作 ...
  • Win10家庭版安装Docker Desktop,基于WSL2

    千次阅读 2020-06-24 12:27:16
    是通过脚本开启Hyper-V,然后修改注册表将Win10家庭版伪装成专业版来安装,查阅Docker网站,发现Docker Desktop 出了能够安装在Win10家庭版上的版本,安装教程Install Docker Desktop on Windows Home,是基于WSL2的...
  • 按照弹出的界面中的提示去做,即点击它提供的链接,这里附上链接: https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#manual-installation-steps
  • win10利用WSL2安装docker的2种方式

    千次阅读 2020-06-17 22:08:07
    前言 windows10目前推出了WSL2,相对于WSL采用API转换的方式, WSL2 则完全不同,win10 开始内置了一个轻量级虚拟机,经过不断的优化,这...本文探讨在win10专业版上利用WSL2安装docker的2种方式。 操作实践 1.开.
  • “小妙招:在win10中使用Linux可以选择WSL2。...本文主要在windows上通过wsl2安装ubuntu,使用WSL2提升了windows单机开发环境的易用性,并且docker可以在win10和ubuntu中共享访问和管理。安装系...
  • 这里写自定义目录标题win10 2004 wsl2 docker-desktop启动失败 win10 2004 wsl2 docker-desktop启动失败 win10 升级到版本2004后切换wsl2,启动docker-desktop失败,日志中包括如下信息: [0x7FFF9920E044] ANOMALY:...
  • 前提条件win10版本必须为2004版,内部版本必须为19041或者更高版本,否则无法支持WSL2在Windows上启用wsl2功能,如果你不知道怎么启用,请看我的上一篇内容安装docker desktop请搜索docker官网,并且下载2.30.2或者...
  • 1. 事情的起源 全记录事情的起源是为了学习Python强化学习实战,先在自己的windows操作系统的Pycharm+Anaconda+Gym配置下运行成功了CartPole示例和CarRacing示例,接着运行...2. 在Win10家庭版上安装Docker 下载安装Doc

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 203
精华内容 81
关键字:

dockerwin10wsl2