ubuntu 22.04安装docker后无法启动的问题

在安装Docker后无法启动,查看Docker的日志vim /var/log/docker.log显示如下的错误

time="2022-12-27T00:36:54.741331300+08:00" level=info msg="stopping event stream following graceful shutdown" error="<nil>" module=libcontainerd namespace=moby
time="2022-12-27T00:36:54.741621100+08:00" level=info msg="stopping event stream following graceful shutdown" error="context canceled" module=libcontainerd namespace=plugins.moby
time="2022-12-27T00:36:54.741646800+08:00" level=info msg="stopping healthcheck following graceful shutdown" module=libcontainerd
time="2022-12-27T00:36:55.742640100+08:00" level=warning msg="grpc: addrConn.createTransport failed to connect to {unix:///var/run/docker/containerd/containerd.sock  <nil> 0 <nil>}. Err :connection error: desc = \"transport: Error while dialing dial unix:///var/run/docker/containerd/containerd.sock: timeout\". Reconnecting..." module=grpc
failed to start daemon: Error initializing network controller: error obtaining controller instance: 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))

原因是由于新的ubuntu系统使用了iptables-nft,而WSL2不支持导致的。

可以通过以下命令进行修改

mango@wanzhouyi:/var/log$ 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
mango@wanzhouyi:/var/log$ sudo service docker start
 * Starting Docker: docker                                                                                       [ OK ]
mango@wanzhouyi:/var/log$ sudo service docker status
 * Docker is running

修改完成后重启Docker服务即可

posted @ 2022-12-27 00:52  周XX  阅读(1386)  评论(2编辑  收藏  举报