Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

「OrbStack」Mac 系统中一个更快的 Docker 可视化工具,可完全替代 Docker Desktop

2024-09-02 1 min read Docs Ronan

我之前用的是 Docker Desktop,每次准备启动容器的时候,我都会把能关的应用都关闭,省的电脑卡, Docker Desktop 确实有点儿耗性能。

如果你也觉得 Docker Desktop 太慢了,或者之前没有可视化工具,不妨试试 OrbStack。

img

OrbStack 是一款针对 macOS 操作系统的定制的,它的目的就是提供一个高效、轻量级的 Docker 和虚拟机(VM)管理平台。

官网地址: https://orbstack.dev/

它不仅仅支持 Docker、 Kubernetes,而且支持Linux子系统,类似于 Windows 系统下的 WSL。

它的功能如下:

  • 轻量级虚拟化:OrbStack 使用 macOS 原生的虚拟化框架,确保了高效的资源利用率和优秀的性能表现。
  • 简易管理:提供了对Docker容器和虚拟机的统一管理界面,使用户能够方便地启动、停止、配置和监视容器与虚拟机。
  • 无缝集成:与 Docker 和 Kubernetes 无缝集成,支持容器编排和微服务架构的轻松管理。
  • 强大工具支持:支持 SSH、文件同步、端口转发等功能,方便开发者进行远程调试和开发。
  • 用户友好:提供图形化用户界面和命令行工具,开发者可以根据需求选择最适合的操作方式。

OrbStack 和 Docker Desktop 的优势对比 虽然 OrbStack 和 Docker Desktop 都是用于管理Docker环境的工具,但在具体特性和用户体验上有一些显著的区别和优势:

  1. 资源利用率与性能
  • OrbStack:利用 macOS 原生虚拟化框架,因此更轻量级,启动更快,占用的系统资源更少。
  • Docker Desktop:依赖于第三方虚拟化解决方案如 HyperKit 或 VirtualBox,在资源消耗上可能稍高,尤其是在大量使用 Docker 容器的场景下。
  1. 系统整合
  • OrbStack:深度集成于 macOS,具有更高的系统兼容性和稳定性。对于使用 macOS 系统的开发者,OrbStack 能提供更流畅和无缝的体验。
  • Docker Desktop:尽管支持多种操作系统,但在各个平台上的整合程度和性能表现可能会有所不同。
  1. 用户界面和易用性
  • OrbStack:提供简洁直观的用户界面,同时保留强大的命令行工具。适合那些希望快速上手,并且需要高效管理容器和虚拟机的用户。
  • Docker Desktop:虽然功能全面,但其界面对某些用户尤其是新手用户可能显得有些复杂,学习和配置的时间成本稍高。
  1. 特殊功能
  • OrbStack:提供了特有的功能如文件同步、端口转发和高级网络配置等,使得远程开发和调试更加便捷。
  • Docker Desktop:功能依赖于 Docker Engine,具有全面的 Docker 支持,但某些高级配置功能可能需要额外的学习成本。

如果你正在使用 Docker Desktop ,可以在 OrbStack 中一键将原本的 Docker 配置和资源导入到 OrbStack,几乎零成本切换。

Continue reading

「python」打包程序

2024-09-02 1 min read Docs Ronan

通过pyinstaller打包

要将Python脚本打包成一个独立运行的应用程序,可以使用工具PyInstaller,其可以将Python脚本打包成一个可执行文件 (.exe) 。这样生成的应用程序不依赖于系统上的任何库,可以在没有Python环境的计算机上运行。一般使用pyinstaller将py文件打包成可执行文件。

[!warning]

通过该方法打包的程序不具备跨平台性 :如果你需要在其他操作系统上运行该程序(例如在Windows上开发并希望在macOS或Linux上运行),你需要在目标平台上执行上述步骤。PyInstaller 无法直接生成跨平台的可执行文件。

1. 安装 PyInstaller

首先,确保你已经安装了 PyInstaller。如果没有,可以使用以下命令进行安装:

pip3 install pyinstaller

2. 打包 Python 脚本

在终端或命令提示符下,导航到包含你的 Python 脚本的目录,并运行以下命令:

pyinstaller --onefile script_name.py

script_name.py 替换为你要打包的脚本文件名。--onefile 参数将所有的依赖和脚本打包成一个单一的可执行文件。

3. 查找生成的可执行文件

打包完成后,PyInstaller 会在当前目录下生成一个 dist 文件夹,其中包含你的可执行文件。你可以将这个文件复制到其他没有 Python 环境的系统上运行。

4. 处理依赖项

如果你的脚本有特定的依赖项(如额外的Python库),PyInstaller 会自动检测并打包它们。但如果有某些依赖项没有正确处理,你可能需要使用 --hidden-import 参数手动指定。

pyinstaller --onefile --hidden-import=<module_name> script_name.py

JavasSript常用方法

2024-09-02 1 min read Docs Ronan

获取 DOM 节点

1.选择匹配到的第一个元素

语法:

document.querySelector('css选择器')

参数:

包含一个或多个有效的css选择器 字符串 ,查看 更多css选择器

返回值:

CSS选择器匹配的第一个元素,一个HTML Element对象

2.选择匹配的多个元素

语法:

document.querySelectorAll('CSS选择器')

参数:

包含一个或多个有效的css选择器 字符串 ,查看 更多css选择器

返回值:

CSS选择器匹配的 NodeList 对象集合

示例:

const headings = document.querySelectorAll('h1, h2, h3, h4, h5, h6');
console.log(headings[0].textContent);

这将打印出 h1 标签里的文本内容。

总结

1.获取页面中的标签我们最终常用那两种方式?

querySelectorAll()

querySelector()

2.他们两者的区别是什么?

querySelector() 只能选择一个元素,可以直接操作

querySelectorAll() 可以选择多个元素,得到的是伪数组,需要遍历得每一个元素

3.他们两者小括号里面的参数有神马注意事项

里面写css选择

必须是字符串,也就是必须加引号

更新 DOM 节点

1.innerText方法

语法:

对象.innerText = '<strong>这不会变成粗体</strong>'

注意:

  • 通过该方法插入的只是字符串(纯文本信息),不能识别 html 标签

2.innerHtml方法(最常用)

语法:

对象.innerHtml = '<strong>这里可以变成粗体</strong>'

该方法可以识别 html 标签,或者可以用于插入 css 样式。

示例:

对象.innerHtml = '
    div {
        width: 300px;
        border: 25px solid green;
        padding: 25px;
        margin: 25px;
    }
'

创建和插入节点

1.创建节点并添加属性

创建节点语法:

Continue reading
Older posts Newer posts