docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > wsl2中docker安装完毕后无法正常启动

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、环境

项目版本
windows1022H2
wsl2
ubuntu22.04
docker226.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

总结

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

您可能感兴趣的文章:
阅读全文