记录WSL2安装docker过程,以及自动启动
Windows 版的 Docker Desktop
支持使用 Wsl2
内核来运行。但是最近的版本貌似抽风似的,不停的嘣溃,无奈,直接卸载了它。而且它的那个 GUI
界面平常好像也用不到,最多是看看哪个容器有没有蹦。反正 desktop 版本我觉得很拉垮,尤其是 Mac
版的我从来无法正常更新过。
安装 docker-server 版#
官网文档一进去就是清一色的提供三大系统平台的 desktop 版本下载。想要安装命令行版的 docker,要选择左侧的 Docker Engine
(点我进入官网安装文档)
这里说下我的 WSL2
版本为 Ubuntu-22.04
- 更新软件包索引并安装软件包,以允许通过 HTTPS 使用存储库
$ sudo apt-get update $ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
- 添加 docker 官方 GPG 密钥
$ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 使用以下命令设置存储库
$ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装 docker 引擎
$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 顺便安装 docker-compose这里安装过程就完成了。按照这个操作是没有任何问题的,所以也不用再拉取什么 hello-world 镜像了
$ sudo apt install docker-compose
配置 docker#
WSL2 是不支持
systemctl
命令的,所以要使用service
管理 docker
这个时候的 docker
是无法启动的,要做以下处理:
$ sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
$ sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
打开 powershell
wsl --shutdown
自启动 docker#
$ sudo vim /etc/init.wsl
复制并粘贴以下内容:
#! /bin/sh
service docker start
按 Esc
退出编辑,并输入 :wq
, 回车即可
为文件赋予权限
$ sudo chmod +x /etc/init.wsl
回到 Windows 操作#
- 按
win+R
输入shell:startup
, 并回车 - 在这个目录创建
wsl.vbs
文件 - 复制并粘贴以下内容到 wsl.vbs 里 上面代码中的
Set ws = WScript.CreateObject("WScript.Shell") ws.run "wsl -d Ubuntu-22.04 -u root /etc/init.wsl"
Ubuntu-22.04
是你自己的 wsl 发行版,不要写得跟我一样。
至此,安装完成、自启动完成
如果你不会搭建 php 的 docker 开发环境,没关系,我为你准备好了。
Laradocker
推荐文章: