wsl2 中docker安装完毕后无法正常启动
- 1、背景
- 2、目标
- 3、环境
- 4、原因
- 4、操作
- 5.1、查看配置
- 5.2、 切换配置
- 5.3、启动docker
- 5.4、验证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 - CommunityVersion: 26.0.1Context: defaultDebug Mode: falsePlugins:buildx: Docker Buildx (Docker Inc.)Version: v0.13.1Path: /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version: v2.26.1Path: /usr/libexec/docker/cli-plugins/docker-composeServer:
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、操作
5.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 mode1 /usr/sbin/iptables-legacy 10 manual mode2 /usr/sbin/iptables-nft 20 manual modePress <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
5.2、 切换配置
输入1 从iptables-nft路径切换至iptables-legacy
5.3、启动docker
$ sudo service docker start
5.4、验证docker
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES