在Windwos 10 WSL2中安装Docker

最近在学习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

在Windwos 10 WSL2中安装Docker

http://mixiang.tech/2020/07/26/2020-07-26-20/

作者

Mixion

发布于

2020-07-26

更新于

2022-12-02

许可协议