分两种情况:
- 1、win10版本小于2004版本
- 2、win10版本大于2004版本
win10版本小于2004的话,可以使用WSL1.0,WSL1.0需要在windows上安装docker,然后用ubuntu子系统去连windows的docker
windows版本大于等于2004的话,可以使用WSL2.0。WSL2.0拥有完整的linux内核,可以直接在ubuntu1804子系统上安装docker并启动
下面讲解windows版本大于等于2004的情况下,在ubuntu1804子系统上安装docker
按下win+R,输入winver回车即可
大致步骤:设置中启用适用于linux的Windows子系统–>windows商店安装ubuntu1804–>重启电脑
或者参考官方文档,使用命令开启(这个我没有测试): https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
参考https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
管理员运行powershell,运行下面命令
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
然后重启电脑
但是,这里我操作并重启后似乎失败了 所以我通过下面这个链接更新了WSL Linux内核,然后就可以了
链接地址:https://docs.microsoft.com/nl-nl/windows/wsl/wsl2-kernel
管理员模式运行powershell,执行下面命令
wsl --set-default-version 2
查看所有运行的linux子系统
C:\Windows\system32>wsl --list -v
NAME STATE VERSION
* Ubuntu-18.04 Stopped 1
将上面的Ubuntu-18.04的版本改为WSL2.0
C:\Windows\system32>wsl --set-version Ubuntu-18.04 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。
C:\Windows\system32>wsl --list -v
NAME STATE VERSION
* Ubuntu-18.04 Stopped 2
如果转换报Error 0x1bc
错误,请参考:https://www.jianshu.com/p/3f9c303a4130
默认刚装好的系统需要修改ssh相关配置,然后就可以用xshell连了,大致操作如下
#卸载ssh server
sudo apt-get remove openssh-server
#安装ssh server
sudo apt update && sudo apt-get install openssh-server -y
#下面是我的sshd配置,我是使用公钥登陆的,如果需要密码登陆,需要设置PasswordAuthentication为yes
[root@david rpms]$ egrep -v '^$|^#' /etc/ssh/sshd_config
Port 2222
ListenAddress 0.0.0.0
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
#重启ssh服务,不能使用systemctl启动
[root@david rpms]$ service ssh restart
然后就可以xshell连了
参考:https://developer.aliyun.com/mirror/
[root@ubuntu ~]$ sudo vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
#启动docker
service docker restart
docker拉取镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7f28zkr3.mirror.aliyuncs.com"]
}
EOF
sudo service docker restart
测试docker能不能用,没毛病
[root@ubuntu ~]$ docker pull centos
Using default tag: latest
latest: Pulling from library/centos
3c72a8ed6814: Pull complete
Digest: sha256:76d24f3ba3317fa945743bb3746fbaf3a0b752f10b10376960de01da70685fbd
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
可以参考下面操作,我的用户名是david
#如果你创建了好几个用户,要确保该用户在默认的sudo组内
[root@david ~]$ id david
uid=1000(david) gid=1000(david) groups=1000(david),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),114(netdev)
#然后修改/etc/sudoers,加一行
[root@david ~]$ vim /etc/sudoers
...
david ALL=(ALL) NOPASSWD:ALL
在你电脑的 “%AppData%\Microsoft\Windows\Start Menu\Programs\Startup” 目录内创建一个文件,并命名为 *.vbs (任意名称的.vbs文件),文件内容:
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe",0
ws.run "C:\Windows\System32\bash.exe -c 'sudo /usr/sbin/service ssh restart'",0
ws.run "C:\Windows\System32\bash.exe -c 'sudo /usr/sbin/service docker restart'",0