在WSL 2 (Ubuntu 22.04)安装Docker Ce 启动错误解决

查看WSL版本

  • 在 Windows 命令提示符(CMD)或 PowerShell 中,你可以使用以下命令来查看已安装的 WSL 发行版及其版本信息:
plaintext 复制代码
wsl -l -v
shell 复制代码
(base) PS C:\Users\Lenovo> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Running         2

docker启动报错

failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to register "bridge" driver: unable to add return rule in DOCKER-ISOLATION-STAGE-1 chain: (iptables failed: iptables --wait -A DOCKER-ISOLATION-STAGE-1 -j RETURN: iptables v1.8.7 (nf_tables): RULE_APPEND failed (No such file or directory): rule in chain DOCKER-ISOLATION-STAGE-1 (exit status 4))

解决方法:

在WSL中安装Ubuntu 22.04稳定版后,我按照Docker官方说明继续安装Docker引擎。因为这是WSL,所以运行sudo systemctl start docker不起作用。要启动docker服务,您需要使用sudo /etc/init.d/docker start .

如果使用sudo /etc/init.d/docker status命令检查,你将注意到docker服务没有运行。原因是在启动docker时出现了这个错误。

要解决这个问题,需要将默认iptables更新为 legacy 选项。这样做之后,你应该能够启动docker服务并运行正常的docker命令。

复制代码
$ 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

选择 1 , 修改选项。

查看windows宿主IP

在 WSL 2 环境下,可以通过查看/etc/resolv.conf文件来获取 Windows 宿主机器的 IP 地址相关信息。这个文件用于配置域名解析,其中包含了从 WSL 2 访问外部网络(包括 Windows 宿主网络)的网关信息。

执行以下命令:

shell 复制代码
cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.30.112.1

这里的172.30.112.1就是 Windows 宿主机器为 WSL 2 提供的网关 IP 地址,这个 IP 地址可用于从 WSL 2 与 Windows 宿主机器进行通信相关的操作。不过,这不是 Windows 宿主机器真正的外部网络 IP 地址,但在 WSL 2 内部用于访问 Windows 系统是非常关键的信息。

相关推荐
斯普信云原生组31 分钟前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
喵了几个咪43 分钟前
如何在 Superset Docker 容器中安装 MySQL 驱动
mysql·docker·容器·superset
工具罗某人1 小时前
docker compose部署kafka集群搭建
docker·容器·kafka
楠奕2 小时前
CentOS7安装GoldenDB单机搭建及常见报错解决方案
linux·运维·服务器
剑锋所指,所向披靡!3 小时前
Linux常用指令(2)
linux·运维·服务器
不愿透露姓名的大鹏3 小时前
Oracle归档日志爆满急救指南
linux·数据库·oracle·dba
W.W.H.3 小时前
嵌入式常见的面试题1
linux·网络·经验分享·网络协议·tcp/ip
木白CPP3 小时前
DMA-Buffer内核驱动API文档
linux
HXQ_晴天3 小时前
Linux 系统的交互式进程监控工具htop
linux·服务器·网络
song8584 小时前
韦东山开发手册阅读笔记(五)
linux