Windows10+WSL2+Docker相关整理

  • 前置:我的系统是Win10,之前很早已经安装了WSL2,本篇主要是处理一些后续。主要是个人做个记录,
    • ①将WSL2中安装的Ubuntu转移磁盘位置(之前默认在C盘);
    • ②配合安装下Docker

Win10系统安装WSL2+ubuntu20.04

  • 参考的视频链接:我先看的这个,讲得很仔细,很多细节也都涵盖到了。
  • 参考博客的链接:第一个视频已经整差不多了,这篇博客只践行了第二点(二、WSL2 安装 Ubuntu-20.04 至 D盘 ,方法一 | 推荐),主要是为了转移默认安装路径、转移后注销等

安装Docker

  • 主要参考该博客的第三、四点
    • 最新版本镜像迁移只需要更改路径即可。(Docker4.30之后的新版本,已经没有docker-desktop-data分发了,已经被融合整理到Docker-Desktop里了,不用再做其他处理)
  • Docker的历史版本链接(直接下载最新版就行)
  • Docker汉化
  • 安装过程可能发生的一些问题及处理
    • 如果Docker修改镜像路径失败(显示failed to move WSL disk: creating directory to move file),就先彻底退出Docker(即电脑右下角没有Docker图标才行),然后右击Docker的exe运行文件,选择用管理员运行就可以了。
    • 部署转移Docker镜像路径后,启动又发生报错(显示“……附加到 WSL2: 拒绝访问。 错误代码: Wsl/Service/AttachDisk/MountVhd/HCS/E_ACCESSDENIED : exit status 0xffffffff……”),还是用户权限问题,所以可以干脆直接把用户权限开了:参考博客

其他

  • 整理的一些对比
    • VM虚拟机:
      • 用不了显卡(我查过相关解决办法,但好像也很麻烦,如果大家有其他比较好解决方法的,欢迎评论分享),如果跑中间件不用显卡可以考虑;
      • 有人觉得WSL2快于VM、有人觉得VM快。
      • 硬件方面我之前虚拟机用过USB摄像头,只要把一些开关设置调整好搞明白也挺方便,可以在本地系统和虚拟机系统切换使用。
    • WSL2:
      • 方便,但是有人会觉得卡(网友讨论,估计是开启后主机系统也变成了大号虚拟机的缘故);
      • 如果连硬件也不是很方便(驱动协议之类的,不好协调到位),需要装小插件,还得用命令切换
      • PyCharm的付费专业版,才可以用上WSL上的python;但WSL2可以和vscode一起用
    • 双系统:有条件的话,感觉这是比较平衡的处理方法。直接装了Ubuntu系统速度是三者里最快的,而且用WSL也是需要额外配置环境的。
<think>好的,用户问的是如何在WSL2中安装、配置并运行Docker。我需要根据提供的引用内容来组织回答。首先,我得回忆一下用户给的三个引用内容。引用1提到有两种方法,一种是Docker Desktop for Windows搭配WSL2后端,另一种是直接在WSL2中安装Docker Engine。而用户的问题可能更倾向于直接安装Docker Engine,所以可能需要重点讲这个步骤。 接下来,引用2和3给出了一些具体的步骤,比如更新系统、安装依赖包,还有遇到docker命令未找到的情况需要安装docker.io。不过引用3中提到用户输入docker命令时提示需要安装docker.io,这可能说明在WSL2中直接安装Docker Engine需要使用docker.io包,而不是官方的Docker CE。这点需要注意,可能用户需要明确说明两种方法的区别。 用户的需求是安装配置并运行Docker,所以步骤应该包括准备环境、安装Docker、配置用户权限、启动服务、验证安装,以及可能提到的两种方法对比。另外,用户可能关心哪种方法更好,比如引用1提到的Docker官方推荐使用Docker Desktop,但直接安装Docker Engine有什么优势和注意事项也需要说明。 需要确保步骤清晰,比如先更新系统,安装必要工具,添加Docker仓库,安装docker-ce等。但根据引用3,可能在某些情况下需要安装docker.io而不是docker-ce,这可能是因为不同的Linux发行版仓库中的包名不同。比如Ubuntu中可能使用docker.io,而其他发行版可能不同。这点可能需要进一步确认,但根据引用3的提示,用户执行docker -v时提示安装docker.io,说明在Ubuntu中可能默认仓库中的Docker包是docker.io,而如果要安装最新版可能需要添加Docker的官方仓库。 所以可能需要分步骤,先更新系统,然后安装依赖,添加Docker的GPG密钥和仓库,再安装docker-ce。如果用户不想添加仓库,可以直接安装docker.io,但版本可能较旧。这时候需要根据用户的情况给出建议。 另外,配置用户权限部分需要将用户加入docker组,避免每次用sudo。这部分是常规操作,必须包含。 启动服务部分,使用systemctl命令,但WSL2可能默认没有systemd,可能需要其他方式启动服务,比如手动启动dockerd,或者配置systemd。这点需要特别注意,因为引用2和3中没有提到这一点。如果用户使用的是较新的WSL2版本,可能支持systemd,否则可能需要额外步骤。例如,在Ubuntu 22.04及以上版本中,可以通过修改wsl.conf启用systemd,然后重启WSL实例。否则,可能需要手动启动dockerd,或者使用service命令。 验证安装部分,运行docker run hello-world来测试,这是标准步骤。 另外,注意事项需要提到两种方法的对比,直接安装Docker Engine可能更轻量,但需要手动管理,而Docker Desktop集成更好,适合Windows用户。这样用户可以根据需求选择。 总结步骤应该是: 1. 准备环境:确保WSL2安装,系统更新。 2. 安装依赖包。 3. 添加Docker官方仓库(如果需要安装docker-ce)。 4. 安装Docker引擎(docker-ce或docker.io)。 5. 配置用户权限,将用户加入docker组。 6. 处理systemd的问题,启动Docker服务。 7. 验证安装。 8. 注意事项,两种方法对比。 需要检查引用中的信息是否有冲突,比如引用2提到Docker官方推荐使用Docker Desktop,但用户的问题是要在WSL2中直接安装,所以需要按用户需求来。同时引用3中用户执行docker命令时提示安装docker.io,可能说明在默认情况下,直接安装docker.io即可,但版本可能较旧,所以需要指导用户添加Docker仓库来安装最新版。 现在需要把这些步骤详细写出,确保命令正确,比如添加GPG密钥和仓库的步骤是否正确,适用于Ubuntu。同时,如果用户使用的是其他发行版,步骤可能不同,但假设用户使用的是Ubuntu,因为引用中的示例是Ubuntu。 另外,处理systemd的问题可能需要用户启用systemd支持,比如编辑/etc/wsl.conf文件,添加[boot] systemd=true,然后重启WSL。或者在启动时手动启动dockerd。这部分需要明确说明,因为如果用户没有启用systemd,systemctl start docker会失败,需要使用其他命令,比如service docker start,或者直接运行dockerd。 可能需要在步骤中说明如何启用systemd,或者在启动Docker服务时使用替代方法。例如,如果systemd不可用,可以使用: sudo service docker start 或者 sudo dockerd & 但这样可能不够持久,每次启动WSL都需要手动启动。因此推荐启用systemd,或者配置WSL在启动时自动启动Docker。 综上,整理步骤时需要注意这些细节,确保用户能够顺利启动Docker服务。</think>### 在WSL2中安装并配置Docker的步骤 #### 1. **准备环境** - 确保已启用WSL2并安装Linux发行版(如Ubuntu)。若未安装,需在PowerShell中执行: ```bash wsl --install -d Ubuntu ``` - 更新系统软件包: ```bash sudo apt update && sudo apt upgrade -y ``` #### 2. **安装必要依赖** ```bash sudo apt install -y apt-transport-https ca-certificates curl software-properties-common ``` #### 3. **添加Docker官方仓库** - 导入Docker的GPG密钥: ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` - 添加仓库源: ```bash echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` #### 4. **安装Docker Engine** ```bash sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io ``` > **注意**:若仅需基础功能,可直接安装`docker.io`(版本可能较旧): > ```bash > sudo apt install -y docker.io > ``` #### 5. **配置用户权限** - 将当前用户加入`docker`组,避免每次使用`sudo`: ```bash sudo usermod -aG docker $USER ``` - 退出并重新登录WSL会话以生效。 #### 6. **启动Docker服务** - **若WSL支持systemd**(需Ubuntu 22.04+并启用systemd): 1. 编辑配置文件: ```bash sudo nano /etc/wsl.conf ``` 2. 添加以下内容后保存: ```ini [boot] systemd=true ``` 3. 重启WSL实例(在PowerShell中执行): ```powershell wsl --shutdown ``` 4. 启动服务: ```bash sudo systemctl start docker sudo systemctl enable docker ``` - **若无法使用systemd**,手动启动服务: ```bash sudo service docker start ``` #### 7. **验证安装** ```bash docker run hello-world ``` 若输出`Hello from Docker!`,则安装成功[^3]。 #### 8. **注意事项** - **直接安装Docker Engine的优势**:资源占用更少,适合熟悉Linux管理的用户[^1]。 - **Docker Desktop方案**:官方推荐,提供图形界面,与Windows深度集成,适合需要便捷操作的用户[^2]。 - WSL2中直接安装的Docker需手动管理更新和服务启动。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值