手把手教你给win10 2004版本的ubuntu1804子系统安装docker

ubuntu1804子系统安装docker-ce

分两种情况:

  • 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

二、确认系统版本是2004版本以上

按下win+R,输入winver回车即可

手把手教你给win10 2004版本的ubuntu1804子系统安装docker_第1张图片

二、安装ubuntu子系统

大致步骤:设置中启用适用于linux的Windows子系统–>windows商店安装ubuntu1804–>重启电脑

或者参考官方文档,使用命令开启(这个我没有测试): https://docs.microsoft.com/zh-cn/windows/wsl/install-win10

三、更新到WSL2.0

参考https://docs.microsoft.com/zh-cn/windows/wsl/install-win10

3.1、需要启用虚拟机平台可选组件

管理员运行powershell,运行下面命令

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

然后重启电脑

但是,这里我操作并重启后似乎失败了 所以我通过下面这个链接更新了WSL Linux内核,然后就可以了

链接地址:https://docs.microsoft.com/nl-nl/windows/wsl/wsl2-kernel

手把手教你给win10 2004版本的ubuntu1804子系统安装docker_第2张图片

四、将WSL2.0设置为默认版本

管理员模式运行powershell,执行下面命令

wsl --set-default-version 2

五、修改ubuntu1804的WSL版本

查看所有运行的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

六、连接ubuntu子系统

默认刚装好的系统需要修改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连了

七、安装docker-ce

参考:https://developer.aliyun.com/mirror/

7.1、修改ubuntu1804子系统的安装源

[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

7.2、安装docker-ce

# 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

八、设置ubuntu1804子系统和docker开机自启

8.1、ubuntu1804需要设置sudo免密

可以参考下面操作,我的用户名是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

8.2、创建开机器启动文件

在你电脑的 “%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

你可能感兴趣的:(ubuntu,docker,windows,win102004,WSL2.0,ubuntu子系统,docker)