记录WSL2安装docker过程,以及自动启动

Windows版的 Docker Desktop 支持使用 Wsl2内核来运行。但是最近的版本貌似抽风似的,不停的嘣溃,无奈,直接卸载了它。而且它的那个GUI界面平常好像也用不到,最多是看看哪个容器有没有蹦。反正desktop版本我觉得很拉垮,尤其是 Mac版的我从来无法正常更新过。

安装docker-server版

官网文档一进去就是清一色的提供三大系统平台的 desktop 版本下载。想要安装命令行版的docker,要选择左侧的Docker Engine(点我进入官网安装文档)

这里说下我的WSL2版本为 Ubuntu-22.04

  1. 更新软件包索引并安装软件包,以允许通过 HTTPS 使用存储库
    $ sudo apt-get update
    $ sudo apt-get install \
     ca-certificates \
     curl \
     gnupg \
     lsb-release
  2. 添加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
  3. 使用以下命令设置存储库
    $ 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
  4. 安装docker引擎
    $ sudo apt-get update
    $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  5. 顺便安装docker-compose
    $ sudo apt install docker-compose
    这里安装过程就完成了。按照这个操作是没有任何问题的,所以也不用再拉取什么hello-world镜像了

配置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操作

  1. win+R 输入 shell:startup ,并回车
  2. 在这个目录创建wsl.vbs文件
  3. 复制并粘贴以下内容到 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
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 8

我直接用的dnmp :joy:,装了一个docker desktop

1年前 评论
浪里小白龙 (楼主) 1年前

项目是映射到宿主机,还是就放在ubuntu的

1年前 评论
浪里小白龙 (楼主) 1年前
Angle (作者) 1年前
浪里小白龙 (楼主) 1年前

你项目文件放在wsl 系统里,phpstorm打开wsl 项目,没法保存怎么解决的

10个月前 评论
浪里小白龙 (楼主) 9个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!