win10子系统ubuntu(WSL) 安装Docker的教程(图文详解)

环境说明

环境:win10企业版 + ubuntu 18.04 LTS [WSL]

win10安装Docker for windows

现在 Docker 有专门的 Win10 专业版系统的安装包,需要开启Hyper-V。

开启 Hyper-V

程序和功能

启用或关闭Windows功能

选中Hyper-V

安装Docker for windows

最新版 Docker for windows

下载地址: https://docs.docker.com/v17.09/docker-for-windows/install/

点击 Get Docker for Windows [Stable],并下载 Windows 的版本:

安装完成后,Docker 会自动启动。通知栏上会出现个小鲸鱼的图标,这表示 Docker 正在运行。

桌边也会出现三个图标,入下图所示:

我们可以在命令行执行 docker version 来查看版本号,docker run hello-world 来载入测试镜像测试。

如果没启动,你可以在 Windows 搜索 Docker 来启动:

启动后,也可以在通知栏上看到小鲸鱼图标:

子系统安装Docker安装

没啥问题

leenhem@DESKTOP-7SREO20:~$ sudo apt-get install docker.io
Reading package lists... Done
Building dependency tree
Reading state information... Done
docker.io is already the newest version (18.09.7-0ubuntu1~18.04.4).
0 upgraded, 0 newly installed, 0 to remove and 111 not upgraded.

使用 有问题 [无法正常使用]

官网释疑【解

leenhem@DESKTOP-7SREO20:~$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
leenhem@DESKTOP-7SREO20:~$ sudo /etc/init.d/docker status
 * Docker is not running
leenhem@DESKTOP-7SREO20:~$ sudo /etc/init.d/docker start
 * Starting Docker: docker                                             [ OK ]
leenhem@DESKTOP-7SREO20:~$
leenhem@DESKTOP-7SREO20:~$ sudo /etc/init.d/docker status
 * Docker is running
leenhem@DESKTOP-7SREO20:~$ sudo /etc/init.d/docker status
 * Docker is not running

你会发现这个Docker怎么都启动不了,那现在怎么办?一定要先看日志(/var/log/docker.log )
leenhem@DESKTOP-7SREO20:~$ tail /var/log/docker.log -n 100

time="2019-10-22T11:58:25.436968100+08:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{unix:///var/run/docker/containerd/containerd.sock 0 <nil>}]" module=grpc
time="2019-10-22T11:58:25.437359900+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
time="2019-10-22T11:58:25.437703900+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc420769030, CONNECTING" module=grpc
time="2019-10-22T11:58:25.438698400+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc420769030, READY" module=grpc
time="2019-10-22T11:58:25.559058900+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
time="2019-10-22T11:58:25.719182400+08:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
time="2019-10-22T11:58:25.719593400+08:00" level=warning msg="Your kernel does not support cgroup memory limit"
time="2019-10-22T11:58:25.719660300+08:00" level=warning msg="Unable to find cpu cgroup in mounts"
time="2019-10-22T11:58:25.719697200+08:00" level=warning msg="Unable to find blkio cgroup in mounts"
time="2019-10-22T11:58:25.719732900+08:00" level=warning msg="Unable to find cpuset cgroup in mounts"
time="2019-10-22T11:58:25.719888000+08:00" level=warning msg="mountpoint for pids not found"
time="2019-10-22T11:58:25.721991900+08:00" level=info msg="stopping healthcheck following graceful shutdown" module=libcontainerd
time="2019-10-22T11:58:25.722045300+08:00" level=info msg="stopping event stream following graceful shutdown" error="context canceled" module=libcontainerd namespace=plugins.moby
time="2019-10-22T11:58:25.723869300+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc420769030, TRANSIENT_FAILURE" module=grpc
time="2019-10-22T11:58:25.724042800+08:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc420769030, CONNECTING" module=grpc
Error starting daemon: Devices cgroup isn't mounted

初步结论:应该WIN10内核无法完全模拟Linux的cgroup和aufs组件

官网解释【解决方案】

[Cross Post] WSL Interoperability with Docker

https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly

apt install screenfetch
screenfetch

脚本:https://files.cnblogs.com/files/rgqancy/WSL.js,下载后另存为txt

建立中继

现在安装Go,我们可以构建继电器。在下面的命令中,请确保使用您的Windows用户名替换:

go get -d github.com/jstarks/npiperelay
GOOS=windows go build -o /mnt/c/Users/Administrator/go/bin/npiperelay.exe github.com/jstarks/npiperelay

我们现在已经为Windows构建了中继,但我们希望它可以从WSL内部调用。为此,我们创建一个符号链接。确保使用您的Windows用户名替换:

sudo ln -s /mnt/c/Users/Administrator/go/bin/npiperelay.exe /usr/local/bin/npiperelay.exe

我们将使用socat来帮助启用中继。安装socat,这是一种允许两点间数据双向流动的工具(稍后详细介绍)。抓住这个包裹:

sudo apt install socat

最后一步

随着socat的安装和可执行文件的构建,我们只需要将几件事情串起来。我们将制作一个shell脚本来激活我们的功能。我们将把它放在用户的主目录中。去做这个:

#make the file
touch ~/docker-relay
#add execution privileges
chmod +x ~/docker-relay

打开我们用你最喜欢的文本编辑器创建的文件(比如vim)。将其粘贴到文件docker-relay中:

#!/bin/sh
exec socat UNIX-LISTEN:/var/run/docker.sock,fork,group=docker,umask=007 EXEC:"npiperelay.exe -ep -s //./pipe/docker_engine",nofork

保存该文件并关闭它。docker-relay脚本将Docker管道配置为允许docker组访问。要以普通用户身份运行(不必为每个docker命令附加'sudo'),请将您的WSL用户添加到docker组。在Ubuntu中:

sudo adduser <your WSL user> docker

测试一下吧!

打开一个新的WSL外壳以确保您的组成员身份被重置。在后台启动中继:

sudo ~/docker-relay &

现在运行docker命令来测试水域。你应该被相同的输出迎接,就像你从Windows运行命令一样(并且注意你不需要在命令前加'sudo'!)

注意

要提前启动docker for windows

原理图

使Docker客户端在WSL下运行以与Docker for Windows通信存在一个基本问题:WSL客户端通过unix套接字理解IPC,而Docker for Windows通过命名管道理解IPC。这就是socat和npiperelay.exe发挥作用的地方–这是这两种不相交IPC形式之间的中介。Socat理解如何通过unix套接字进行通信,npiperelay理解如何通过命名管道进行通信。Socat和npiperelay都了解如何通过stdio进行通信,因此它们可以彼此通信。

总结

以上所述是小编给大家介绍的win10子系统ubuntu(WSL) 安装Docker的教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Win10 安装Linux ubuntu-18.04双系统(安装指南)

    在自己的电脑上安装了一个 Linux ubuntu系统,第一次安装,记录下每一步步骤,以下是安装过程: 第一步:下载ubuntu镜像文件 ubuntu- 18.04.0镜像文件下载 链接: https://pan.baidu.com/s/1DISQKq-uj7Ne--AUj2YRpA 提取码: i7qg 第二步:分区 在我的电脑右键,点击管理 点击磁盘管理 选择一个盘进行压缩,一般100G左右即可 完成之后会出现一个未分配空间,不用管它 第三步:制作启动盘 准备一个U盘,插入电脑,在使用是会删除

  • Win10 + Ubuntu 16.04双系统完美安装教程【详细】

    务必记得备份自己的数据,数据无价!!! 电脑型号:Thinkpad E550 固态装了win10,机械硬盘打算装Ubuntu16.04 固态硬盘格式MBR,机械硬盘格式GPT 一.制作U启动盘 1.下载系统镜像 Ubuntu 16.04 LTS 可以到<官网>下载,也可以到<云盘>下载.(提取码:5t4s ) 2.下载UltraISO软碟通 可到<官网>下载. 3.刻录镜像到U盘 二.磁盘分区 我在机械硬盘(磁盘1)划出了100G左右的空间以供Ubuntu使用. 1.右

  • ubuntu用 vmware 安装win10系统的教程(分享)

    1,下载 VMware Workstation 14 Pro 官网:https://www.vmware.com/cn.html 需要注册一下才能下载,当然你也可以在其他网站下载.需要下载VMware Workstation 14.0.0 Pro for Linux 这个版本,下载结束之后的文件是:VMware-Workstation-Full-14.0.0-6661328.x86_64.bundle 永久激活密钥: CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ZC3WK-AFX

  • win10上安装ubunt18双系统过程中出现mmx64.efi not found问题

    安装Ubuntu18过程中,从u盘启动ubunt安装,出现mmx64.efi not found问题 如下图: 制作好ubunt启动盘之后在EFI/BOOT下会看到两个文件,将其中grubx64.efi改名为mmx64.efi即可重装系统. 总结 以上所述是小编给大家介绍的win10上安装ubunt18双系统过程中出现mmx64.efi not found问题,希望对大家有所帮助!

  • win10子系统ubuntu(WSL) 安装Docker的教程(图文详解)

    环境说明 环境:win10企业版 + ubuntu 18.04 LTS [WSL] win10安装Docker for windows 现在 Docker 有专门的 Win10 专业版系统的安装包,需要开启Hyper-V. 开启 Hyper-V 程序和功能 启用或关闭Windows功能 选中Hyper-V 安装Docker for windows 最新版 Docker for windows 下载地址: https://docs.docker.com/v17.09/docker-for-wind

  • 最新Python idle下载、安装与使用教程图文详解

    简介:IDLE是Python软件包自带的一个集成开发环境,可以方便地创建.运行.调试Python程序.本文包括IDEL安装.使用配置.和运行调试教程. 由于Google.YouTube等大型公司的推广,python编程语言越来越受欢迎,很多编程爱好者,也将Python做为了首先的编程语言. 今天我们就来讲一下,学习的第一步,安装Python idle编辑器,也它的调试和使用. 第一步,我们先去下载一个Python idle程序安装包. 本节讲的是windows下的idle,Linux idle是

  • Windows下mysql-5.7.28下载、安装、配置教程图文详解

    最近需要更换mysql数据库的版本,写一篇文章,记录一下 一.下载mysql数据库 mysql的下载共有两种,一种是zip压缩文件,另一种是msi安装程序 官方5.7版本zip压缩文件下载页面 官方5.7版本msi安装程序下载页面 我这里选择5.7.28-Windows64位 点击左下角直接开始下载 使用迅雷或者IDM等下载器,下载会快一点 下载完成之后的两种文件 二.安装mysql数据库 我这里使用zip压缩文件安装,这是免安装的,配置的内容多一点 1.解压缩安装文件 注意:解压缩的路径里面不

  • VMware Workstation 15 Pro中安装ubuntu1804的教程(图文详解)

    这篇笔记是一篇安装教程,没有什么实际的意义,仅为了记录一下--距离上次弄这东西不知道多长时间了,以至于这次再次使用时很是生疏,于是就想着把过程记录下来方便之后查看. 这里不涉及VMware Workstation 15 Pro的安装.仅为如何在其中安装ubuntu以及实现与物理主机之间的复制粘贴等. 一大波图片来临了.对!都是图片-- 一.创建ubuntu虚拟机 注意:这里选择"稍后安装操作系统",要不然VMware就帮你弄好了,没意思. 注意:此这里选择你的镜像文件 注意:网络连接,

  • VS2019打包WPF安装程序最新教程(图文详解)

    VS2019打包WPF安装程序最新教程,使用Visual Studio 2019开发的WPF程序如果想要打包为安装程序,除了在VS2019找到WPF项目类库直接右键发布之外,更常用的还是将其打包为exe或者msi的安装程序:打包成安装程序的话,客户得到安装程序直接安装即可使用,即使在离线环境情况下,安装好就可以使用了. 一些传统行业发布程序时,比较常用这种方法,如医疗,教育等. 演示程序打包一览 在本教程中,我完整的打包了一个简单的WPF程序,最终安装好了以后,在桌面有一个我的程序的快捷方式图标

  • Windows上安装tensorflow 详细教程(图文详解)

    一, 前言: 本次安装tensorflow是基于Python的,安装Python的过程不做说明(既然决定按,Python肯定要先了解啊):本次教程是windows下Anaconda安装Tensorflow的过程(cpu版,显卡不支持gpu版的...) 二, 安装环境: (tensorflow支持的系统是64位的,windows和linux,mac都需要64位) windows7(其实和windows版本没什么关系,我的是windows7,安装时参照的有windows10的讲解) Python3.

  • JDK13.0.1安装与环境变量的配置教程图文详解(Win10平台为例)

    一.下载与安装 Oracle官网下载:https://www.oracle.com/technetwork/java/javase/downloads/index.html,点击右侧下载 接受并下载对应平台文件(Win10为例) 打开安装包,一路安装,记住安装目录即可(安装路径无中文) 我的路径:F:\Java\jdk-13.0.1 下载安装完成 二.配置环境变量 JDK12以后是没有JRE的安装的,JDK本身包含JRE,网上有生成JRE的方法,这里我们直接修改环境变量(后续遇到问题在进行更正)

  • win10 安装 mysql 5.7 msi版的教程图文详解

    我装msi格式的,主要是想看看装完的my.ini, 文件位置C:\ProgramData\MySQL\MySQL Server 5.7\my.ini, 注意:ProgramData是隐藏文件夹 mysql 5.7 windows 默认 my.ini 一.下载地址 https://dev.mysql.com/downloads/windows/installer/5.7.html 二.安装 安装没有选目录的地方,自动装到C盘. 1.选择Server only,包括命令行客户端 2.安装VC ++

  • MySQL 8.0.13 下载安装教程图文详解

    MySQL是使用最多的数据库,自己电脑上肯定要装一个来多加学习,自己搞不懂的一些东西要多写一些 sql 语句练习. 首先去 mysql 官网下载,地址: https://dev.mysql.com/downloads/mysql/ 选择上图的这个版本就可以把 windows 版的 mysql 最新版本下载下来,点进去之后并不会立刻下载,而是会跳到下图这个页面,只要点击No thanks, just start my download.即可 接下来就开始下载啦.下载完成后可以解压到你想放的地方,一

  • Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解

    1. 安装Anaconda3 官网下载Anaconda3:https://www.anaconda.com/distribution/ 运行下载好的.exe文件 Win+R 调出运行对话框,输入 cmd 回车,输入 python,如果出现python版本信息,表明安装成功. 添加环境变量:高级系统设置 -> 环境变量 2. 查看电脑显卡信息 以 Win10 为例,控制面板 -> NVIDIA控制面板 -> 帮助 -> 系统信息 -> 组件 3. 创建PyTorch环境 卸载原

随机推荐