工欲善其事必先利其器 之 DockerDesktop(下)

文章目录

  • 工欲善其事必先利其器 之 DockerDesktop(下)
  • 前言
  • 一、DockerDesktop Settings
  • 二、什么是 WSL 2?
  • 三、Docker Desktop 为什么使用 WSL 2?
  • 四、如何修改Docker Desktop镜像存放目录?
  • 五、如何限制 DockerDesktop CPU、内存使用率
  • 总结
  • 声明
  • 参考文献

前言

使用 DockerDesktop 拉取的镜像默认存放在 C:\Users\用户\AppData\Local\Docker 目录下,C盘资源比较宝贵,大量的镜像会占据C盘的大量空间,因此正常情况下都需要修改此目录。那么如何修改呢?

一、DockerDesktop Settings

我们先来了解下DockerDesktop Settings里相关功能。

  • DockerDesktop General界面

    我们可以看到通用设置里只是一些基本设置

  • DockerDesktop Resources界面

    我们再来看一下资源设置,可以看到有个 Advanced ,这个是用来限制资源使用率的。

  • DockerDesktop Docker Engine界面

    我们再来看一下 Docker Engine 这里是Docker Configuration 功能区,比如 镜像加速 就是在这个地方进行配置。

  • DockerDesktop Experimental Features界面

    这里我们可以看到是 Docker Compose 功能区。

  • DockerDesktop Kubernetes界面

    最后一个,我们可以看到,这里是 Kubernetes 功能区。

了解完DockerDesktop Settings,我们并没有找到可以修改 C:\Users\用户\AppData\Local\Docker 的地方。这时我们就需要换个思路了,还记得安装DockerDesktop时,让我们安装的一个 WSL 2 backend 吗?这是什么东东呢?接下来,我们先来了解一下什么是 WSL 2

二、什么是 WSL 2?

WSL 2 是适用于 Linux 架构的 Windows 子系统的新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。它的主要目标是提高文件系统性能,以及增加完整的系统调用兼容性

三、Docker Desktop 为什么使用 WSL 2?

Windows Subsystem for Linux (WSL) 2 引入了重大的架构变更,它是由 Microsoft 构建的完整 Linux 内核,允许 Linux 容器无需仿真即可在本机运行。通过在 WSL 2 上运行 Docker Desktop,用户可以利用 Linux 工作区并避免同时维护 Linux 和 Windows 构建脚本。此外,WSL 2 改进了文件系统共享、启动时间,并允许 Docker Desktop用户访问一些新功能。

Docker Desktop 使用了 WSL 2 中的动态内存分配特性,极大地提高了资源消耗。这意味着,Docker Desktop 仅使用其所需的 CPU 和内存资源量,同时使 CPU 和内存密集型任务(例如构建容器)运行得更快。

四、如何修改Docker Desktop镜像存放目录?

  1. 列出Windows Subsystem for Linux

    wsl --list
    # 输出信息
    适用于 Linux 的 Windows 子系统分发版:
    docker-desktop (默认)
    docker-desktop-data
    
  2. 关闭docker desktop

  3. 关闭 wsl

    wsl --shutdown
    
  4. docker-desktopdocker-desktop-data 导出到指定目录

    wsl --export docker-desktop D:\SoftwareData\wsl\docker-desktop.tarwsl --export docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data.tar
    
  5. 注销 docker-desktopdocker-desktop-data

    wsl --unregister docker-desktopwsl --unregister docker-desktop-data
    
  6. 重新导入 docker-desktopdocker-desktop-data 到要存放的文件夹

    wsl --import docker-desktop D:\SoftwareData\wsl\ D:\SoftwareData\wsl\docker-desktop.tar --version 2wsl --import docker-desktop-data D:\SoftwareData\wsl\ D:\SoftwareData\wsl\docker-desktop-data.tar --version 2
    

注:docker-desktop-data 默认存放路径,C:\Users\用户\AppData\Local\Docker

五、如何限制 DockerDesktop CPU、内存使用率

我们需要在 C:\Users\用户\ 目录下创建一个 .wslconfig 文件

[wsl2]
#kernel=C:\\temp\\myCustomKernel
memory=4GB
swap=4GB
processors=2

相关配置参数

key value default notes
kernel string The Microsoft built kernel provided inbox An absolute Windows path to a custom Linux kernel.
memory size 50% of total memory on Windows or 8GB, whichever is less; on builds before 20175: 80% of your total memory on Windows How much memory to assign to the WSL 2 VM.
processors number The same number of processors on Windows How many processors to assign to the WSL 2 VM.
localhostForwarding boolean true Boolean specifying if ports bound to wildcard or localhost in the WSL 2 VM should be connectable from the host via localhost:port.
kernelCommandLine string Blank Additional kernel command line arguments.
swap size 25% of memory size on Windows rounded up to the nearest GB How much swap space to add to the WSL 2 VM, 0 for no swap file.
swapFile string %USERPROFILE%\AppData\Local\Temp\swap.vhdx An absolute Windows path to the swap virtual hard disk.

总结

以上就是本文的主要内容,本文介绍了 WSL 2,DockerDesktop 实践小技巧。本专栏后面的文章将带你认识其它的开发利器 ,敬请期待哦(*^▽^*)

声明

以上内容均来源于网络,如有错误,请多多包含。

参考文献

Docker Desktop

Docker Desktop WSL 2 backend

Configure global options with .wslconfig

Arguments for managing Windows Subsystem for Linux

工欲善其事必先利其器 之 DockerDesktop(下)相关推荐

  1. 工欲善其事必先利其器 之 DockerDesktop(上)

    关键词:DockerDesktop.如何在桌面运行Docker.Docker容器 工欲善其事必先利其器 之 DockerDesktop(上) 文章目录 工欲善其事必先利其器 之 DockerDeskt ...

  2. 工欲善其事必先利其器 之 Minikube(上)

    关键词:minikube.快速搭建kubernetes.快速搭建k8s.如何在桌面上运行一个k8s 工欲善其事必先利其器 之 Minikube (上) 文章目录 工欲善其事必先利其器 之 Miniku ...

  3. JVM - 工欲善其事必先利其器之虚拟机工具(下)

    文章目录 JVM - 工欲善其事必先利其器之虚拟机工具(下) 1.可视化虚拟机工具JConsole 1.1 JConsole是什么? 1.2 JConsole的使用 1.2.1 概览 1.2.2 内存 ...

  4. 工业工程专业C语言,工欲善其事必先利其器——工业工程课程设置及其核心专业课简介...

    新朋友点上方蓝字"IE臭皮匠"快速关注 公众号成立期间很多IE学子留言,说应聘时HR不知道工业工程是什么.能做什么,对此小编十分有同感.要想了解IE是什么.能做什么,首先要了解学了 ...

  5. github 著名php,工欲善其事必先利其器,盘点Github上那些优秀的PHP项目

    工欲善其事必先利其器,作为一个开发者,了解并使用前人造好的轮子能让我们的开发事半功倍,在这里老宅整理了几个Github上有趣的php项目与大家分享. swoole Github仓库名称:swoole/ ...

  6. 工欲善其事必先利其器-C语言拓展–嵌入式C语言(一)

    工欲善其事必先利其器-C语言拓展–嵌入式C语言(一) 我是golang出生,当时做项目的时候java.c++.js.python都折腾过,但是关于c语言的接触,基本上都停留在大一的那个暑假.后来因为要 ...

  7. 工欲善其事必先利其器,IDEA必装插件!

    工欲善其事必先利其器,IDEA必装插件! 代码缩略图 CodeGlance 推荐指数:★★★★★ 用过sublime Text的都知道它第一印象就是编辑器最右边有一个缩略图,可以很好的对代码进行导航 ...

  8. # 工欲善其事必先利其器,让你的idea“飞”起来

    工欲善其事必先利其器,让你的idea"飞"起来 文章目录 工欲善其事必先利其器,让你的idea"飞"起来 前言 img 1.经典的psvm,sout: 2.控制 ...

  9. # 工欲善其事必先利其器-C语言拓展--嵌入式C语言(四)

    工欲善其事必先利其器-C语言拓展–嵌入式C语言(四) 零长度数组 零长度数组.变长数组都是GNU C编译器支持的数组类型. 什么是零长度数组? 首先肯定长度是为0的数组 ANSI C规定定义一个数组长 ...

最新文章

  1. get all table's information concerned
  2. python多线程下载ts_基于Python的ERA-5多线程下载(1)
  3. wordpress漏洞上传php文件夹,WordPress Asset-Manager PHP文件上传漏洞
  4. PPT设计里的小技巧
  5. 【2016年第6期】情境大数据建模及其在用户行为预测中的应用
  6. 轻松学c语言编程.pdf等,轻松学编程 轻松学C语言编程pdf
  7. 转:Subversion TortoiseSVN: Installed and started on Windows 2003 server and local machines
  8. php手动删除变量函数,PHP unset()函数销毁变量_PHP教程
  9. 四、Oracle的复杂查询
  10. php查询mysql表里的数据_PHP连接Mysql数据库读取表格数据
  11. S7-200SMART案例分析——伺服选型(一)
  12. C语言 十进制转换为二进制
  13. 开源mysql执行平台_MySQL自动化审核平台部署说明
  14. C/C++编程学习 - 第17周 ② 数字统计
  15. IE 浏览器 判断 增加 支持 IE8 IE9 IE10 IE11等 IE浏览器(是不是IE浏览器判断)
  16. Problem A: 薪酬计算
  17. 计算机c盘小了,为什么电脑C盘空间越来越小?
  18. MySQL编程实战三之求任务执行批次号
  19. C++智能指针详解(auto_ptr、unique_ptr、shared_ptr)
  20. Pots (bfs)

热门文章

  1. K均值与DBSCAN聚类效果
  2. 疯了疯了,13楼惊现蟋蟀
  3. java 基础练习(1-5)
  4. 计算机组成原理1(现代计算机细分组成框图)
  5. matlab傅里叶级数展开
  6. arcgis desktop和arcgis engin连接postgresql数据库连接需要的类库
  7. Linux系统编程 74 孤儿进程和僵尸进程
  8. 白话中台战略2:中台到底长啥样?
  9. Java-Map集合
  10. 前端小白如何学习 CSS