最近在学习kubernets,正在阅读《Kubernetes in
action》一书,为了感性化的理解书中内容决定同步在办公PC上安装书中涉及到工具和代码,今天先完成在win
10 WSL2中安装Docker。首先在win 10
WSL2中安装Docker想法是基于微软宣称的WSL2内核是真正的Linux内核,也就想当然的认为WSL2中的Ubuntu
20.04和在PC上直接安装是一致的,结果在安装过程中遇到各种小插曲。
打开硬件虚拟化支持 
在BIOS中设置Intel虚拟化支持,进入到Virtualization选项中,设置Intel
Virtual
Technology为enable。重启以后即可在windows任务管理器-〉性能面板中查询虚拟化已开启。
升级WSL-〉WSL2 
升级win10到支持WLS2版本,Version 2004, Build 19041 or
higher;
设置WSL版本
在cmd中输入如下命令:wsl --set-default-version 2,将wsl版本设置为WSL2。
安全ubuntu 20.04 在windows store中搜索ubuntu 20.04,安装ubuntu
20.04版本;安装完成后启动ubuntu 20.04系统提示
 
详细配置参考:https://docs.microsoft.com/en-us/windows/wsl/
安装Docker 
安装windows 10版本的Docker
不要直接使用系统apt的命令安装docker.io;建议下载windows
10的Docker版本,设置启动WSL即可。 
检查Docker安装是否成功
使用:sudo docker version查询docker版本: ###
如果显示如下信息则说明server端没有启动或者连接失败: 1 2 3 4 5 6 7 8 9 10 Client: Version:           19.03.12-ce API version:       1.40 Go version:        go1.14.4 Git commit:        48a66213fe Built:             Wed Jul  1 17:05:50 2020 OS/Arch:           linux/amd64 Experimental:      false Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version": dial unix /var/run/docker.sock: connect: permission denied 
 
解决方案:
使用sudo docker version查询,如果仍然显示失败; 
检查server是否启动 
  
 
如果显示如下信息则说明启动成功: 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Client: Version:           19.03.12-ce API version:       1.40 Go version:        go1.14.4 Git commit:        48a66213fe Built:             Wed Jul  1 17:05:50 2020 OS/Arch:           linux/amd64 Experimental:      false Server: Engine: Version:          19.03.12-ce API version:      1.40 (minimum version 1.12) Go version:       go1.14.4 Git commit:       48a66213fe Built:            Wed Jul  1 17:05:26 2020 OS/Arch:          linux/amd64 Experimental:     false containerd: Version:          v1.3.4.m GitCommit:        d76c121f76a5fc8a462dc64594aea72fe18e1178.m runc: Version:          1.0.0-rc91 GitCommit:        24a3cf88a7ae5f4995f6750654c0e2ca61ef4bb2 docker-init: Version:          0.18.0 GitCommit:        fec3683 
配置国内源 
在Windows中配置国内源 配置Dokcer国内源时需要打开(图形化的)Docker
Desktop,直接设置国内源即可;如果
在Linux系统中配置源,直接修改/etc/docker/daemon.json文件即可。详细请参考:https://docs.docker.com/registry/recipes/mirror/ 
配置文件格式为JSON格式,例如:
1 2 3 {   "registry-mirrors" :  [ "https://<my-docker-mirror-host>" ]  } 
常用的国内Docker如下: - docker官方中国区:
https://registry.docker-cn.com - 网易: http://hub-mirror.c.163.com -
ustc: http://docker.mirrors.ustc.edu.cn 可以同时配置多个源,例如:
1 2 3 4 5 6 {   "registry-mirrors" :  [      "https://registry.docker-cn.com" ,      "http://hub-mirror.c.163.com"      ]  } 
重启Docker服务即可生效 
在Linux执行如下命令:
1 2 sudo systemctl daemon-reload sudo systemctl restart docker 
如果重启提示错误可以可根据提示的命令定位错误原因。 > Job for
docker.service failed because the control process exited with error
code. > > See "systemctl status docker.service" and "journalctl
-xe" for details.
查询配置是否生效 
sudo docker info