阅读 1062

WSL2配置docker的坑和最终解决办法

介绍

Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。 Docker容器 与虚拟机类似,但原理上,容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。

一开始,我用的是WSL下安装docker,在添加 Docker 的官方 GPG 密钥出现了问题

gpg: can't connect to the agent: IPC connect call failed

在这里找到了答案,但不幸的是我并不适用。

sudo apt update
sudo apt install libc6=2.31-0ubuntu8+lp1871129~1 libc6-dev=2.31-0ubuntu8+lp1871129~1 libc-dev-bin=2.31-0ubuntu8+lp1871129~1 -y --allow-downgrades
sudo apt-mark hold libc6
复制代码

不过在issue里我发现可能换成WSL2可以解决问题,于是我换成了wsl2,该问题解决。

然后在运行过程中又报了以下的错:

docker run remote error: tls: bad record MAC.

经过长时间寻找,在issue以及博客的帮助下,发现是因为无线网卡驱动的问题,升级驱动或者换了网络连接方式后没有此报错。

接着出现了

net/http: TLS handshake timeout

这个因为

该命令默认从docker远端镜像仓库中拉取镜像,但由于远端仓库的服务器是在国外,我们国内有的用户很可能都访问不到

可是明明开代理了。。

最后最终解决方案,Docker for Windows

1.安装Docker for Windows

2.setting->general->use the WSL2...

3.setting->resources->proxies 换成你的代理

4.setting->resources->WSL integration 选择你的系统

5.启动

文章分类
阅读
文章标签