最近在学习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
## 配置Docker
配置国内源
在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