GVKun编程网logo

Windows 下的 Linux 子系统安装,WSL 2 下配置 docker(win10 linux子系统 docker)

7

对于Windows下的Linux子系统安装,WSL2下配置docker感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解win10linux子系统docker,并且为您提供关于Docker初体

对于Windows 下的 Linux 子系统安装,WSL 2 下配置 docker感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解win10 linux子系统 docker,并且为您提供关于Docker初体验--windows系统安装docker及运行、Gulp Watch 不适用于 Linux 2 (WSL 2) 的 Windows 子系统、Linux on Windows(WSL)上使用docker、Nginx在Linux和windows下的安装使用 windows.old windows.hlp windows2000的宝贵知识。

本文目录一览:

Windows 下的 Linux 子系统安装,WSL 2 下配置 docker(win10 linux子系统 docker)

Windows 下的 Linux 子系统安装,WSL 2 下配置 docker(win10 linux子系统 docker)

Windows 下的 Linux 子系统安装,WSL 2 下配置 docker

前提条件:
  1. 安装 WSL 2 需要 Windows 10 版本是 Build 18917 或更高,首先先确认系统版本已升级。

  2. 在 “启用或关闭 Windows 功能” 中启用以下两个选项:Windows 虚拟机平台、适用于 Linux 的 Windows 子系统。

  3. 启用这些更改后,重新启动计算机。

  4. 从如上图中安装最新的 Ubuntu 发行版。

1. Powershell 下配置

将 WSL2 作为 Ubuntu 的默认架构

wsl -- set - version Ubuntu 2

如果想要让 WSL 2 成为默认架构,可以执行以下操作:

wsl -- set - default - version 2

2. 编译 WSL 2 内核

2.1 安装编译环境的依赖包
sudo apt-get update
sudo apt-get install build-essential flex bison libssl-dev libelf-dev
2.2 从 git 下载官方的内核
https://github.com/microsoft/WSL2-Linux-Kernel
2.3 编译内核
sudo make KCONFIG_CONFIG=Microsoft/config-wsl  

3. WSL2 上配置 docker

官方安装 docker 步骤链接:

[https://docs.docker.com/install/linux/docker-ce/ubuntu/]

 

部署 docker 步骤:

3.1 卸载旧版 docker
sudo apt-get remove docker docker-engine docker.io containerd runc
3.2 设置存储库

1. 更新 apt 包

sudo apt-get update

2. 安装包以允许apt通过 HTTPS 使用存储库

sudo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  software-properties-common

3. 添加 Docker 的官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通过搜索指纹的最后8个字符,验证您现在拥有带指纹的密钥 。
sudo apt-key fingerprint 0EBFCD88
   
pub   rsa4096 2017-02-22 [SCEA]
    9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

4. 使用以下命令设置稳定存储库。要添加 夜间测试存储库,请在下面的命令中的单词后添加单词nightlytest(或两者)stable了解夜间测试频道

注意:下面的lsb_release -cs子命令返回 Ubuntu 发行版的名称,例如xenial。有时,在像 Linux Mint 这样的发行版中,您可能需要更改$(lsb_release -cs) 为父 Ubuntu 发行版。例如,如果您正在使用 Linux Mint Tessa,则可以使用bionic。Docker 不对未经测试和不受支持的 Ubuntu 发行版提供任何保证。

  • x86_64 / amd64

$ sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
3. 安装 docker engine-community
sudo apt-get update
docker//sudo apt-get install docker-ce docker-ce-cli containerd.io

列出仓库中的可用版本

apt-cache madison docker-ce
sudo apt-get install docker-ce=18.03.1~ce~3-0~ubuntu

测试 docker

sudo docker run hello-world

sudo /etc/init.d/docker start
service docker start

sudo service docker status

docker info  
docker images  

docker run hello-world

Docker初体验--windows系统安装docker及运行

Docker初体验--windows系统安装docker及运行

一、前言

docker是运行在linux操作系统上的,可以理解为linux操作系统上的一个软件

如果要在windows上运行docker的话,目前的话需要先跑一个linux的虚拟机,然后在该虚拟机里面装docker,然后使用这个docker容器来跑linux系统,好像有点绕的赶脚

docker也在和微软合作,相信不久支持windows的原生docker容器就会被开发粗来啦

二、安装

安装docker的话机器需要支持Intel VT虚拟化技术,具体可以看见这篇文章:http://blog.163.com/hypc_bevery@yeah/blog/static/92937163201161044713931/

下面就开始安装啦

首先去这个地址:https://github.com/boot2docker/windows-installer/releases/latest下载Docker for Windows Installer,这个会安装:Docker Client for Windows, VirtualBox, Git for Windows (MSYS-git), the boot2docker Linux ISO, and the Boot2Docker management tool

正如上面所说的,"要在windows上运行docker的话,目前的话需要先跑一个linux的虚拟机",所以会安装 VirtualBox,boot2docker Linux ISO这个是一个微型的linux操作系统,MSYS-git,是git的windows客户端,具体可以看我的另外一篇博客:Git初体验,为什么需要这个呢 ,因为需要从远程仓库里下载东西,通过后面的操作我们会看到

安装完成后,会在桌面上粗线2个快捷方式:Oracle VM VirtualBox和Boot2Docker Start

直接双击:Boot2Docker Start,会粗线一个标题有:MINGW32的命令行,这个可以在windows下模拟linux环境

上面的操作实际上是执行docker安装目录下的start.sh,该脚本主要是执行了下面的3个操作,最后一个在通过SSH连接的时候会用到

boot2docker.exe init
boot2docker.exe start
boot2docker.exe ssh

运行下面命令看是否正常:

docker version

运行:

docker run hello-world

这个命令会从远端下载一个非常小的image,并且会打印:Hello from Docker

三、通过CMD启动

添加环境变量:C:\Program Files (x86)\Git\bin,这个操作是必须的

然后启动cmd,执行:

boot2docker start

如果出错了,可以尝试执行

boot2docker init

然后,会提示让你执行类似下面的命令:

set DOCKER_HOST=tcp://192.168.59.103:2376
set DOCKER_CERT_PATH=C:\Users\whaon\.boot2docker\certs\boot2docker-vm
set DOCKER_TLS_VERIFY=1

如果你没有执行的话,后面的docker操作会提示如下错误:

Get http://127.0.0.1:2375/v1.19/images/json: dial tcp 127.0.0.1:2375: ConnectEx
tcp: No connection could be made because the target machine actively refused it.
. Are you trying to connect to a TLS-enabled daemon without TLS?

执行后,就阔以正常使用了,你可以尝试执行:

docker version
docker images
docker ps

通过SSH来连接

前面说过,我们实际上是启动了一个linux虚拟机,那么我们当然阔以用ssh连接上去了

执行

boot2docker ip

来查看ip地址,一般都是192.168.59.103,用户名密码为:docker/tcuser

这样我们就愉快的连接上去了,可以正常使用常用的linux命令以及docker命令

五、在docker上运行linux(后面的操作 都以ubuntu为例)

上面说了三种可以操作docker的方式:mingw,cmd,ssh,看你喜欢用哪个

有2中方式可以安装并运行linux

第一种:我们执行:

 docker run ubuntu echo hello world

这个会下载ubuntu,并且打印出hello world

然后运行:

docker run -i -t ubuntu

这样就进入ubuntu系统了

也可以直接通过下面的命令来运行,参数为镜像ID:

docker run -it 117efd3c1ae5

可以执行exit命令退出,这样的话这个ubunbu也就退出了,在docker ps中便不再显示了

第二种:

先下载:ubuntu-14.04-x86_64.tar.gz,然后上传到boot2docker linux系统中

然后执行:

cat ubuntu-14.04-x86_64.tar.gz |docker import - ubuntu:ubuntu14

然后运行:

docker run -i -t ubuntu:ubuntu14 /bin/bash

其实,我们也没必要先上传到boot2docker linux系统中,通过cmd或者mingw也可以完成,因为C:\Program Files (x86)\Git\bin这个目录下也有cat命令

六、提交

我们进入运行在docker上的linux后不免要进行很多操作,但是一旦我们退出来,下一次再进入该linux系统后操作是会丢失掉的,所以我们需要提交

先执行下面的命令来查看我们刚刚运行的那个docker的一些信息

docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED
STATUS                     PORTS               NAMES
710e8c7dbc92        ubunbu:latest       "/bin/bash"         4 minutes ago
Exited (0) 3 seconds ago                       fervent_bardeen

然后用下面的命令提交:

docker commit 710e8c7dbc92        ubunbu:latest

第一个参数是容器ID,第二个参数是镜像ID,如果不小心把第二个参数写错了,就会多出一个镜像,可以通过

docker images

来查看,删除镜像用下面的命令,参数为镜像的ID

docker rmi  117efd3c1ae5

七、安装SSH

下面我们在运行在docker容器中的linux(ubuntu)上安装SSH

apt-get update
apt-get install openssh-server
passwd root #输入用户密码

注意我们要允许root用户通过SSH来登录,所以必须要修改sshd的配置文件

vi  /etc/ssh/sshd_confg
# Authentication:

LoginGraceTime 120

#PermitRootLogin without-password    #找到这里,把它注释

PermitRootLogin yes                  #改为yes  然后重启ssh

StrictModes yes




然后启动

/etc/init.d/ssh start
#或者
service ssh start

我们先来查看下ip地址:

ifconfig

比如:172.17.0.97 注意此时我们不能退出来,否则该ubuntu也就会停止

所以我们重新打开一个客户端来连接,然后输入:

ssh root@172.17.0.97

ip地址就是上面查粗来的ip,密码的话就是上面设置的密码,然后就愉快的进去了

八、后台运行linux

前面我们也提到了,你进入ubuntu系统后是不能退出去的,不然ubuntu也相当于关机了,这样岂不是很不爽,怎么破呢

我们可以通过下面的方式来解决:

执行:

docker run -d -p 22 ubuntu:latest /usr/sbin/sshd -D

这样就会在后台运行ubuntu,由于我们按照了sshd,所以启动的时候会开发sshd

再执行:

docker ps

会看到如下:

CONTAINER ID        IMAGE               COMMAND               CREATED
  STATUS              PORTS                   NAMES
d566335c9461        ubunbu:latest       "/usr/sbin/sshd -D"   4 seconds ago
  Up 3 seconds        0.0.0.0:32786->22/tcp   insane_lalande

即是把32786映射了22端口,那我们就阔以用ssh来连接了

执行:

ssh root@127.0.0.1 -p 32786

就可以连接上了

注意上面的操作是通过ssh连接docker来执行,如果你是在windows下通过CMD来执行,你需要先知道boot2docker的ip地址,比如:192.168.59.103,然后通过下面的命令来连接:

ssh root@192.168.59.103 -p 32786



Gulp Watch 不适用于 Linux 2 (WSL 2) 的 Windows 子系统

Gulp Watch 不适用于 Linux 2 (WSL 2) 的 Windows 子系统

如何解决Gulp Watch 不适用于 Linux 2 (WSL 2) 的 Windows 子系统?

我正在 Windows 中处理 WSL 2 上的一个项目。项目使用node只编译sass和minify js。我已将项目文件保存在我的 Windows 文件系统中。我访问项目文件并在 WSL 2 上使用 Ubuntu 运行项目。除了 gulp watch 外,一切正常。我使用 VSCode 作为文本编辑器。我已经正确配置了 gulp watch 以在更改时重新编译 sass 文件,但它似乎没有这样做。在运行 gulp watch 时,watch 会启动,但在进行任何更改时,不会编译 SASS 文件。

解决方法

这是因为 WSL 2 的工作方式。 Windows 应用程序在 Windows 文件系统上进行的文件更改不会触发 Linux 应用程序的通知。此问题目前在 GitHub 上的 this 链接中打开。

要使其工作,请将您的项目文件存储在 Linux 文件系统的主目录中(cd ~ 将带您到主目录)。再次运行 gulp watch,你应该可以开始了!!!

Linux on Windows(WSL)上使用docker

Linux on Windows(WSL)上使用docker

Linux on Windows(WSL)上使用docker

环境

windows 10家庭中文版 1709

步骤

启用并安装(Ubuntu)Linux on Windows(具体方法请使用搜索引擎)

  1. 在“设置->更新和安全->针对开发人员”中使用开发人员模式

  2. 开始菜单中搜索“启用或关闭 Windows功能”,找到“适用于Linux的Windows子系统”打上勾

  3. 进入应用商店,搜索Ubuntu,找到Ubuntu 18.04并获取

  4. 安装好后直接在开始菜单中找到并打开,就可以使用了,如果第一次打开显示installing,那就关掉,等待一会后再开

安装Docker for windows或者docker toolbox

因为Linux on Windows中无法运行docker的deamon,所以还是需要在windows上安装一个docker

  1. 下载Docker for windows(下最新版本,这时候docker是18.06.0-ce),如果不是win10专业版和企业版而是家庭版那就只能下载docker toolbox,笔者下的是docker toolbox

  2. 按照提示安装好之后会有Docker Quickstart Terminal、Kitematic、Oracle VM VirtualBox三个快捷方式,先启动Oracle VM VirtualBox,然后启动Kitematic,根据提示操作(不同版本可能有所不同),最后会在VM上看到一个名为default的虚拟机

  3. 这时候启动Docker Quickstart Terminal就可以直接使用docker了,不过呢,dockerhub的源比较慢,最好换一个,笔者换的是DaoCloud的,步骤如下:

    1. 在Docker Quickstart Terminal命令行执行docker-machine ssh default(default是machine实例的名字,可以更改)进入VM bash
    2. sudo vi /var/lib/boot2docker/profile
    3. 在--label provider=virtualbox的下一行添加--registry-mirror daocloud加速器地址
    4. 重启docker服务:sudo /etc/init.d/docker restart或者重启VM:exit退出VM bash,在Windows命令行中执行docker-machine restart

ubuntu更换国内源

笔者更换的是清华的源,ubuntu自带的源是美国的,会比较慢 注意,只用于bionic发行版

  1. 进入WSL

  2. 备份

    	sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
    
  3. 打开文件

    	sudo vim /etc/apt/sources.list
    
  4. 用以下内容替换

    	deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic main multiverse restricted universe
    	deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic main multiverse restricted universe
    	deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-security main multiverse restricted universe
    	deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-security main multiverse restricted universe
    	deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates main multiverse restricted universe
    	deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates main multiverse restricted universe
    	deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-proposed main multiverse restricted universe
    	deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-proposed main multiverse restricted universe
    	deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-backports main multiverse restricted universe
    	deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-backports main multiverse restricted universe
    
  5. 更新apt

    	sudo apt update
    

提供一些镜像地址列表 Debian https://www.debian.org/mirror/list Ubuntu http://wiki.ubuntu.org.cn/源列表

根据官网给WSL安装docker

这时候是docker18.06.0-ce

配置WSL

  1. 打开~/目录下的.bashrc文件 vim ~/.bashrc

  2. 加入以下内容

    #配置docker的连接,适用于docker toolbox
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://192.168.99.100:2376
    export DOCKER_CERT_PATH=/mnt/c/Users/[你的windows系统用户名]/.docker/machine/certs
    
    #因为vm中与windows的共享文件夹目录是/c/Users/,而在Linux on Windows中是/mnt/c/,所以为了docker可以顺利运行(docker客户端会取docker-compose文件的绝对目录作为参数传到服务端使用),需要把/mnt/c挂载到/c/,不可以用符号链接,因为docker不支持符号链接
    #如果有其他挂载目录,需要自行修改脚本
    if ! mountpoint -q ''/c'';then
      if [ ! -d "/c" ] && [ ! -f "/c" ]; then
        sudo mkdir -p /c
      fi
      if [ -d "/c" ] && [ ! "$(find / -maxdepth 1 -type l | grep ''/c'' )" ] && [ ! "$(ls -A /c)" ]; then
        sudo mount --bind /mnt/c /c
      else
        echo "没有挂载/mnt/c到/c"
      fi
    fi
    
  3. 这时候就可以在Linux on Windows中操作docker了,注意,如果用到本地文件(docker-compose文件或者容器挂载目录等)的话必须在/c目录下操作,就算是/mnt/c都不行

Nginx在Linux和windows下的安装使用 windows.old windows.hlp windows2000

Nginx在Linux和windows下的安装使用 windows.old windows.hlp windows2000

关于Windows 下的 Linux 子系统安装,WSL 2 下配置 dockerwin10 linux子系统 docker的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Docker初体验--windows系统安装docker及运行、Gulp Watch 不适用于 Linux 2 (WSL 2) 的 Windows 子系统、Linux on Windows(WSL)上使用docker、Nginx在Linux和windows下的安装使用 windows.old windows.hlp windows2000的相关信息,请在本站寻找。

本文标签: