wsl2中docker安装完毕后无法正常启动的解决方案
作者:水步天
在Windows 10中安装WSL2并配置Docker时遇到问题,通过切换iptables版本(从iptables-nft到iptables-legacy)解决了Docker运行异常的问题
1、背景
在win10中安装wsl2体验linux操作系统,按照docker官网步骤安装,安装完毕后面提示
$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
$ docker info
Client: Docker Engine - Community
Version: 26.0.1
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.13.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.26.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
errors pretty printing info
2、目标
启动运行docker
3、环境
| 项目 | 版本 |
|---|---|
| windows10 | 22H2 |
| wsl | 2 |
| ubuntu | 22.04 |
| docker | 226.0.1 |
4、原因
通过系统工具update-alternatives 可以配置和切换当前系统中的iptables 环境做到多版本管理。
切换iptables版本解决WSL2中docker运行异常的问题。
4、操作
4.1、查看配置
查看当前配置信息
sudo update-alternatives --config iptables There are 2 choices for the alternative iptables (providing /usr/sbin/iptables). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/sbin/iptables-nft 20 auto mode 1 /usr/sbin/iptables-legacy 10 manual mode 2 /usr/sbin/iptables-nft 20 manual mode Press <enter> to keep the current choice[*], or type selection number: 1 update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in manual mode
4.2、 切换配置
输入1 从iptables-nft路径切换至iptables-legacy
4.3、启动docker
$ sudo service docker start
4.4、验证docker
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
