在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が起動しない