在WSL2上的Ubuntu环境中进行Docker的初始设置所需

首先

为了在Windows上运行Linux环境,我使用WSL2建立了一个Ubuntu环境。
然而,由于安装Docker时遇到了问题,所以写下了备忘录。

使用Docker的初始配置

参照此文章进行设置,以在WSL2上安装Docker Engine的最简安装步骤。

安装Docker引擎

由于需要使用Docker,因此需要进行安装。
在安装之前,会显示建议使用Docker Desktop for Windows的消息,但如果不处理,安装将继续进行。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

为了使除了root用户以外的用户能够使用Docker命令,需要进行以下配置。

我认为也会有使用非root用户的情况,所以我建议您设置这个命令。

sudo usermod -aG docker $USER

重启WSL2。

为了应用所做的设置,请在PowerShell或命令提示符中执行一次关机操作,然后再重新启动。

wsl --shutdown

启动Docker服务

如果不启动服务,将无法使用Docker,因此请运行此命令。
* 启动Docker:如果返回”docker [OK]”,表示启动成功。

sudo service docker start

检查Docker的运行情况

使用简单的命令来检查Docker是否正常运行。

docker run hello-world

如果出现以下消息,则Docker命令正常运行。

Hello from Docker!
This message shows that your installation appears to be working correctly.

然而,如果出现以下消息,则表示Docker无法运行。

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

适用于未运行Docker的人士。

【WSL2】解决Docker显示“无法连接到Docker守护程序”的问题
参考此文章,进行错误处理。

查看Docker日志

为了检查内部发生了什么错误,使用以下命令:

sudo cat /var/log/docker.log

在我的情况下,出现了以下的消息。
原因是因为Docker无法适应新的iptables。

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))

将系统切换为Legacy版的iptables。

由于不支持新版本,我们将切换到Legacy版。
您只需输入以下命令即可完成。

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

重新启动WSL2。

为了使设定内容生效,您可以在PowerShell或命令提示符中执行关机操作,然后重新启动。

wsl --shutdown

启动Docker服务并进行操作检查

和之前一样,我们将启动服务并检查Docker是否正常运行。

sudo service docker start
docker run hello-world

如果您看到以下消息,则表示Docker命令已正确运行。

Hello from Docker!
This message shows that your installation appears to be working correctly.

结束时。

在Windows上能够运行Linux很方便,但我觉得像Docker这样的设置很麻烦。
这篇文章是由各种不同的文章整理而成,希望能对您有所参考。

参考资料

    • Ubuntu on WSL2でのDocker Engineの最短インストール手順

 

    • 【WSL2】DockerでCannot connect to the Docker daemon…と表示される問題の対処

 

    Troubleshoot: WSL2でDockerが起動しない