wsl2中docker安装完毕后无法正常启动的解决方案

 更新时间:2025年11月20日 08:47:13   作者:水步天  
在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

总结

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

相关文章

  • 设置docker的定时关闭和启动方式

    设置docker的定时关闭和启动方式

    文章介绍了在Docker中设置容器定时关闭和启动的两种方法:使用系统级定时任务(如cron)和使用Docker特定的解决方案,通过配置CronJob、DockerCompose或DockerSwarm,可以实现容器的定时启动和关闭
    2024-12-12
  • docker 数据卷之进阶篇

    docker 数据卷之进阶篇

    这篇文章主要介绍了docker 数据卷之进阶篇,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • docker desktop无法启动的一种解决方法(附完整步骤)

    docker desktop无法启动的一种解决方法(附完整步骤)

    这篇文章主要介绍了如何解决由于关闭虚拟化导致Docker Desktop无法启动的问题,通过重新启动虚拟化和WSL发行版解决了问题,并总结了其中的步骤和遇到的报错,需要的朋友可以参考下
    2025-03-03
  • Docker如何配置Redis容器持久化

    Docker如何配置Redis容器持久化

    这篇文章主要介绍了Docker如何配置Redis容器持久化问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 利用Docker制作Nginx+PHP镜像的步骤详解

    利用Docker制作Nginx+PHP镜像的步骤详解

    Nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性,那么这篇文章小编就分步骤向大家介绍如何利用Docker制作Nginx+PHP的镜像,文章介绍的很详细,对大家具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • Dockerfile为镜像添加SSH服务的实现步骤

    Dockerfile为镜像添加SSH服务的实现步骤

    利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题,本文主要介绍了Dockerfile为镜像添加SSH服务的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Docker给容器添加新端口映射两种方法及常用命令

    Docker给容器添加新端口映射两种方法及常用命令

    在使用Docker时容器的端口映射是一个核心概念,它允许容器与宿主机以及外部网络进行通信,这篇文章主要给大家介绍了关于Docker给容器添加新端口映射两种方法及常用命令的相关资料,需要的朋友可以参考下
    2024-07-07
  • 无网络docker镜像迁移的实现

    无网络docker镜像迁移的实现

    本文主要介绍了无网络docker镜像迁移的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-06-06
  • 迁移变更Docker默认数据存储目录的步骤详解

    迁移变更Docker默认数据存储目录的步骤详解

    Docker安装的默认数据目录为/var/lib/docker,但是如果/目录挂载的磁盘空间不够,就需要迁移docker数据到其他目录,接下来本就给大家介绍迁移变更Docker默认数据存储目录的操作步骤,需要的朋友可以参考下
    2023-12-12
  • 使用Docker快速搭建你的Gitbook

    使用Docker快速搭建你的Gitbook

    这篇文章主要介绍了使用Docker快速搭建你的Gitbook的相关资料,需要的朋友可以参考下
    2023-11-11

最新评论