Docker 介绍

Docker 介绍

  • 1 介绍
    • 1.1 概述
    • 1.2 资源高效利用
    • 1.3 发展历程
    • 1.4 组件
    • 1.5 工具
    • 1.6 对环境部署和虚拟化的影响
    • 1.7 优点
    • 1.8 容器技术核心
      • Cgroup
      • Namespace
      • UnionFS
  • 2 命令
    • 信息、状态、配置
      • info命令用于显示当前系统信息、docker容器、镜像个数、设置等信息
    • 镜像
    • 容器
    • 资源
  • 3 安装
    • 3.1 版本介绍
    • 3.2 官方安装说明
    • 3.3 配置文件
  • 4 使用
    • 加载镜像
    • container 处理
    • 架构
    • 运行arm镜像
    • 本地文件夹映射到镜像中
  • 参考

1 介绍

1.1 概述

在这里插入图片描述

  • Docker是一组平台即服务(PaaS) 产品,它使用操作系统级虚拟化以称为容器的包形式交付软件。该服务有免费和高级两种级别。托管容器的软件称为Docker Engine。它于 2013 年首次启动,由Docker, Inc.开发。
  • Docker是一种用于在轻量级容器中自动化部署应用程序的工具,使应用程序能够在不同的环境中隔离高效地工作。
  • 容器之间相互隔离,并捆绑自己的软件、库和配置文件;他们可以通过明确的渠道相互沟通。由于所有容器共享单个操作系统内核的服务,因此它们使用的资源比虚拟机少。
  • Docker 可以将应用程序及其依赖项打包在可以在任何 Linux、Windows 或 macOS 计算机上运行的虚拟容器中。
  • 由于 Docker 容器是轻量级的,因此单个服务器或虚拟机可以同时运行多个容器。
  • Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat 则从 RHEL 6.5 开始对 Docker 进行支持;Google 也在其 PaaS 产品中广泛应用 Docker。
  • Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。
  • Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
  • Docker 是一个用于开发,交付和运行应用程序的开放平台。
  • Docker 是容器的一种技术实现,常见的容器运行时有:
    Containerd (Docker)、cri-o、kata、lxd、lxc、runC
  • Docker 使得容器技术变得好用,从而普及了容器技术。(容器技术解决了虚拟化本身的损耗问题,但因为难用,很长一段时间没有成为主流。)

1.2 资源高效利用

为了资源高效利用,计算机行业发展了很多技术。
从早期的物理机到虚拟机,然后再到容器技术;以及 CPU 从单任务到多任务,然后到多核处理器,主要就是在解决资源共享问题,以及资源共享后衍生出来的安全问题、性能损耗问题以及资源隔离问题。

在20世纪60年年代,虚拟化的概念就已经产生。1961年 IBM709 机实现了分时系统,将 CPU 占用切分为多个极短(1/100sec)时间片,每一个时间片都执行着不同的任务。通过对这些时间片的轮询,这样就可以高效利用单个CPU。

主流的虚拟化技术及软件,常见有:MWare workstation(VMWare)、VirtualBox(Oracle)、Hyper-V(Microsoft)、KVM(Redhat)、Xen、OpenStack等。

虚拟机目的都是在一台强性能的物理机上虚拟出多个互相之间完全独立的虚拟机。主要优势就是能大大提升物理资源利用率的同时,又能将不同的应用完全独立开来,能够进行资源的隔离,资源的共享。但缺点也比较明显,就是在进行虚拟化的同时会消耗大量的资源,这部分资源的消耗并没有产生任何业务价值。而容器技术刚好能够解决虚拟机的这个问题。

1.3 发展历程

  • 2010年,Kamel Founadi、Solomon Hykes 和 Sebastien Pahl 三人创立的项目 DotCloud 获得了创业孵化器 Y Combinator 的支持,并开始吸引到一些真正的投资,在接下来的3年中,dotCloud 内部孵化了一款名为 Docker 的产品。
  • 2013 年,Docker在圣克拉拉的PyCon上向公众首次亮相。它于 2013 年 3 月作为开源发布。当时,它使用LXC作为默认执行环境。一年后,随着 0.9 版本的发布,Docker 用自己的组件libcontainer取代了 LXC,该组件是用Go编程语言编写的。
  • 2013 年 9 月 19 日:红帽和 Docker 宣布围绕Fedora、红帽企业 Linux (RHEL) 和OpenShift开展合作。
  • 2014 年 10 月 15 日:微软宣布将 Docker 引擎集成到Windows Server中,并原生支持 Windows 中的 Docker 客户端角色。
  • 2014 年 11 月:宣布为Amazon Elastic Compute Cloud (EC2) 提供 Docker 容器服务。
  • 2014 年 11 月 10 日:Docker 宣布与Stratoscale建立合作伙伴关系。
  • 2014 年 12 月 4 日:IBM宣布与 Docker 建立战略合作伙伴关系,使 Docker 能够与 IBM Cloud 更紧密地集成。
  • 2015 年 6 月 22 日:Docker 和其他几家公司宣布他们正在为软件容器制定一个新的供应商和独立于操作系统的标准。
  • 2015 年 12 月:Oracle Cloud在收购 Docker 容器初创公司StackEngine后添加了 Docker 容器支持。
  • 2016 年 4 月:独立软件供应商Windocks向 Windows 发布了 Docker 开源项目的端口,支持 Windows Server 2012 R2 和 Server 2016,以及 SQL Server 2008 及以后的所有版本。
  • 2016 年 5 月:分析显示以下组织是 Docker 的主要贡献者:Docker 团队、思科、谷歌、华为、IBM、微软和红帽。
  • 2016 年 6 月 8 日:微软宣布 Docker 现在可以在Windows 10上原生使用。
  • 2017 年 1 月:对LinkedIn个人资料提及的分析显示 Docker 的存在在 2016 年增长了 160%。
  • 2017 年 4 月,Docker 公司将 Docker 项目重命名为 Moby。
  • 2019 年 5 月 6 日:微软宣布推出第二版Windows Subsystem for Linux (WSL)。Docker, Inc. 宣布已开始开发在 WSL 2 上运行的 Docker for Windows 版本。特别是,这意味着 Docker 可以在 Windows 10 Home 上运行(之前仅限于 Windows Pro 和 Enterprise,因为它使用 Hyper-V)。
  • 2020 年 8 月:微软宣布将 WSL2 向后移植到 Windows 10 版本 1903 和 1909(之前 WSL2 仅在版本 2004 上可用),并且 Docker 开发人员宣布 Docker 可用于这些平台。
  • 2021 年 8 月:适用于 Windows 和 MacOS 的 Docker Desktop 不再对企业用户免费。Docker 结束了对大型企业客户的免费 Docker Desktop 使用,并将其免费计划替换为个人计划。Linux 发行版上的 Docker 不受影响。

1.4 组件

Docker 软件即服务产品由三个组件组成:

软件: Docker守护进程,称为dockerd,是一个管理 Docker 容器并处理容器对象的持久进程。该守护进程侦听通过 Docker 引擎 API 发送的请求。Docker 客户端程序,称为docker,提供了一个命令行界面(CLI),允许用户与 Docker 守护进程交互。

对象: Docker 对象是用于在 Docker 中组装应用程序的各种实体。Docker 对象的主要类别是镜像、容器和服务。

  • Docker 容器是运行应用程序的标准化封装环境。容器是使用 Docker API 或CLI进行管理的。
  • Docker 镜像是用于构建容器的只读模板。图像用于存储和传送应用程序。
  • Docker 服务允许容器在多个 Docker 守护进程之间进行扩展。结果被称为swarm,一组通过 Docker API 进行通信的协作守护进程。

注册表: Docker 注册表是 Docker 镜像的存储库。Docker 客户端连接到注册表以下载(“拉取”)图像以供使用或上传(“推送”)它们已构建的图像。注册表可以是公共的或私有的。主要的公共注册表是 Docker Hub。Docker Hub 是 Docker 查找镜像的默认注册表。Docker 注册表还允许基于事件创建通知。

1.5 工具

  • Docker Compose是一个用于定义和运行多容器 Docker 应用程序的工具。它使用YAML文件来配置应用程序的服务,并使用单个命令执行所有容器的创建和启动过程。CLIdocker-compose实用程序允许用户同时在多个容器上运行命令,例如构建映像、扩展容器、运行已停止的容器等。与图像操作或用户交互选项相关的命令与 Docker Compose 无关,因为它们针对的是一个容器。 docker -compose.yml文件用于定义应用程序的服务并包含各种配置选项。例如,该build选项定义了 Dockerfile 路径等配置选项,该command选项允许覆盖默认的 Docker 命令等等。Docker Compose 的第一个公开测试版(版本 0.0.1)于 2013 年 12 月 21 日发布。第一个生产就绪版本(1.0)于 2014 年 10 月 16 日发布。

  • Docker Swarm为 Docker 容器提供原生集群功能,将一组 Docker 引擎转变为单个虚拟 Docker 引擎。在 Docker 1.12 及更高版本中,Swarm 模式与 Docker Engine 集成。CLI 实用程序允许用户运行 Swarm 容器、创建发现令牌、列出集群中的节点等等docker swarm。CLI实用程序允许用户运行各种命令来管理群中的节点,例如列出群中的节点、更新节点以及从群中删除节点。Docker 使用Raft共识管理集群docker node 算法。根据 Raft 的说法,要执行更新,大多数 Swarm 节点需要就更新达成一致。

  • Docker Volume有利于数据的独立持久化,即使容器被删除或重新创建后,数据仍然保留。

1.6 对环境部署和虚拟化的影响

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.7 优点

  • 统一开发测试运行环境
    Docker 使得不同工程师之间配置统一。
    在这里插入图片描述
  • 更高效的利用系统资源
    Docker 在应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。
  • 更快速的启动时间
    传统的虚拟机技术启动应用服务往往需要数分钟,而 Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。
  • 一致的运行环境
    Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性。
  • 持续交付和部署
    使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 Dockerfile 来进行镜像构建,并结合 持续集成(Continuous Integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 持续部署(Continuous Delivery/Deployment) 系统进行自动部署。
  • 更轻松的迁移
    Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
  • 更轻松的维护和扩展
    Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。此外,Docker 团队同各个开源项目团队一起维护了一大批高质量的 官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。

1.8 容器技术核心

支持容器技术的底层技术主要有 Cgroup、Namespace、UnionFS。

Cgroup

Linux CGroup 全称 Linux Control Group, 是 Linux 内核的一个功能,用来限制,控制与分离一个进程组群的资源(如 CPU、内存、磁盘输入输出等)。这个项目最早是由 Google 的工程师在2006年发起(主要是 Paul Menage 和 Rohit Seth),最早的名称为进程容器(process containers)。在2007年时,因为在 Linux 内核中,容器(container)这个名词太过广泛,为避免混乱,被重命名为 cgroup,并且被合并到2.6.24版的内核中去。

Linux CGroup 为系统中所运行任务(进程)的用户定义组群分配资源 — 比如 CPU 时间、系统内存、网络带宽或者这些资源的组合。您可以监控您配置的 cgroup,拒绝 cgroup 访问某些资源,甚至在运行的系统中动态配置您的 cgroup。

主要提供了如下功能:

  • Resource limitation: 限制资源使用,比如内存使用上限以及文件系统的缓存限制。
  • Prioritization: 优先级控制,比如:CPU 利用和磁盘 IO 吞吐。
  • Accounting: 一些审计或一些统计,主要目的是为了计费。
  • Control: 挂起进程,恢复执行进程。

使用 cgroup,系统管理员可更具体地控制对系统资源的分配、优先顺序、拒绝、管理和监控。可更好地根据任务和用户分配硬件资源,提高总体效率。

Linux 的 Cgroup 具有不同功能的子系统:

  • cpu 子系统,主要限制进程的 cpu 使用率。
  • cpuacct 子系统,可以统计 cgroups 中的进程的 cpu 使用报告。
  • cpuset 子系统,可以为 cgroups 中的进程分配单独的 cpu 节点或者内存节点。
  • memory 子系统,可以限制进程的 memory 使用量。
  • blkio 子系统,可以限制进程的块设备 io。
  • devices 子系统,可以控制进程能够访问某些设备。
  • net_cls 子系统,可以标记 cgroups 中进程的网络数据包,然后可以使用 tc 模块(traffic control)对数据包进行控制。
  • freezer 子系统,可以挂起或者恢复 cgroups 中的进程。
  • ns 子系统,可以使不同 cgroups 下面的进程使用不同的 namespace。

Namespace

Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace。每个Namespace里面的资源对其他Namespace都是透明的。要创建新的Namespace,只需要在调用clone时指定相应的flag。Linux Namespaces机制为实现基于容器的虚拟化技术提供了很好的基础,LXC(Linux containers)就是利用这一特性实现了资源的隔离。不同container内的进程属于不同的Namespace,彼此透明,互不干扰。
Linux 中使用多种 Namespace 进行系统资源的管理,目前支持:

分类系统调用参数相关内核版本描述
Mount namespacesCLONE_NEWNSLinux 2.4.19隔离文件系统挂载点
UTS namespacesCLONE_NEWUTSLinux 2.6.19隔离主机名和域名信息
IPC namespacesCLONE_NEWIPCLinux 2.6.19隔离进程间通信
PID namespacesCLONE_NEWPIDLinux 2.6.24隔离进程的ID
Network namespacesCLONE_NEWNET始于Linux 2.6.24 完成于 Linux 2.6.29隔离网络资源
User namespacesCLONE_NEWUSER始于 Linux 2.6.23 完成于 Linux 3.8隔离用户和用户组的ID

UnionFS

UnionFS 是一种为 Linux,FreeBSD 和 NetBSD 操作系统设计的把其他文件系统联合到一个联合挂载点的文件系统服务。它使用 branch 把不同文件系统的文件和目录“透明地”覆盖,形成一个单一一致的文件系统。这些 branches 或者是 read-only 或者是 read-write 的,所以当对这个虚拟后的联合文件系统进行写操作的时候,系统是真正写到了一个新的文件中。看起来这个虚拟后的联合文件系统是可以对任何文件进行操作的,但是其实它并没有改变原来的文件,这是因为 unionfs 用到了一个重要的资管管理技术叫写时复制。

写时复制(copy-on-write,简称 CoW ),也叫隐式共享,是一种对可修改资源实现高效复制的资源管理技术。它的思想是,如果一个资源是重复的,但没有任何修改,这时候并不需要立即创建一个新的资源;这个资源可以被新旧实例共享。创建新资源发生在第一次写操作,也就是对资源进行修改的时候。通过这种资源共享的方式,可以显著地减少未修改资源复制带来的消耗,但是也会在进行资源修改的时候增减小部分的开销。

2 命令

Docker 分为客户端和服务端两部分, docker 为客户端调用的命令, dockerd 为服务端调用的命令。
在这里插入图片描述

信息、状态、配置

命令描述
info显示 Docker 详细的系统信息
version显示docker客户端和服务端版本信息
inspect查看容器或镜像的配置信息, 默认为json数据
events实时打印服务端执行的事件

info命令用于显示当前系统信息、docker容器、镜像个数、设置等信息

镜像

docker search: 查找镜像
docker pull: 获取镜像
docker push: 推送镜像到仓库
docker login: 登录第三方仓库
docker logout: 退出第三方仓库

容器

资源

3 安装

3.1 版本介绍

Docker 分为 Community Edition (CE) 和 Enterprise Edition (EE) 两个版本。
Docker Community Edition (CE) 又分为 Stable / Test / Nightly 三个版本。

2017 之前,docker的版本
Docker V1.7
Docker V1.8
Docker V1.9
Docker V1.10
Docker V1.11
Docker V1.12
Docker V1.13
2017 年 3月1号后,docker 的版本命名发生变化。
同时将将 docker 分为 DockerCE 版本与 DockerEE。
Docker 社区版(Docker CE):开源调度版本
Docker CE 17.03
Docker CE 17.09
Docker CE 18.03
Docker CE 18.08
Docker CE 19.03
Docker CE 19.09
Docker CE 20.03
Docker CE 20.09
Docker CE 21.03
Docker 企业版(Docker EE):提供企业服务支持

3.2 官方安装说明

https://docs.docker.com/install/

3.3 配置文件

4 使用

加载镜像

docker import ubuntu-2004-arm-dds.tar u20:dds

container 处理

1.停止所有的container,这样才能够删除其中的images:

docker stop $(docker ps -a -q)

如果想要删除所有container的话再加一个指令:

docker rm $(docker ps -a -q)

2.查看当前有些什么images

docker images

3.删除images,通过image的id来指定删除谁

docker rmi

想要删除untagged images,也就是那些id为的image的话可以用

docker rmi $(docker images | grep “^” | awk “{print $3}”)

要删除全部image的话

docker rmi $(docker images -q)

架构

docker inspect u20:dds | grep -i 'architecture'

运行arm镜像

#下载qemu-aarch64-static
wget https://github.com/multiarch/qemu-user-static/releases/download/v5.1.0-5/qemu-aarch64-static.tar.gz#解压
tar xzvf qemu-aarch64-static.tar.gz#配置可执行文件路径
sudo cp qemu-aarch64-static /usr/bin/
chmod +x /usr/bin/qemu-aarch64-static

单次运行
#x86环境运行一个arm镜像,将本地qemu-aarch64-static映射到容器内

docker run -it -v /home/bot/worth/qemu-aarch64-static:/usr/bin/qemu-aarch64-static u20:dds bash

一直运行

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

本地文件夹映射到镜像中

docker run -it -v .:/opt/worth u20:dds /bin/bash

参考

1、wiki–Docker
2、Docker 公司
3、Docker 发展历史
4、Docker 文档–zhaowenyu
5、Docker常用命令大全(万字详解)
6、Docker的历史
7、Docker 入门教程–阮一峰
8、x86环境打包和运行arm镜像
9、【docker】x86主机在docker中运行arm64镜像

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/184845.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2022年电工杯数学建模B题5G网络环境下应急物资配送问题求解全过程论文及程序

2022年电工杯数学建模 B题 5G网络环境下应急物资配送问题 原题再现: 一些重特大突发事件往往会造成道路阻断、损坏、封闭等意想不到的情况,对人们的日常生活会造成一定的影响。为了保证人们的正常生活,将应急物资及时准确地配送到位尤为重要…

jacoco和sonar

目录 jacoco 引入依赖 构建配置修改 单元测试 生成报告 查看报告 报告说明 1. Instructions 2. Branches 3. Cyclomatic Complexity 4. Lines 5. Methods 6. Classes sonar7.7 基础环境 需要下载软件 解压文件并配置 运行启动 jacoco 引入依赖 <dep…

【论文阅读】PSDF Fusion:用于动态 3D 数据融合和场景重建的概率符号距离函数

【论文阅读】PSDF Fusion&#xff1a;用于动态 3D 数据融合和场景重建的概率符号距离函数 Abstract1 Introduction3 Overview3.1 Hybrid Data Structure3.2 3D Representations3.3 Pipeline 4 PSDF Fusion and Surface Reconstruction4.1 PSDF Fusion4.2 Inlier Ratio Evaluati…

Spring boot集成sentinel限流服务

Sentinel集成文档 Sentinel控制台 Sentinel本身不支持持久化&#xff0c;项目通过下载源码改造后&#xff0c;将规则配置持久化进nacos中&#xff0c;sentinel重启后&#xff0c;配置不会丢失。 架构图&#xff1a; 改造步骤&#xff1a; 接着我们就要改造Sentinel的源码。…

Hikyuu 1.3.0 发布,高性能量化交易研究框架

Hikyuu 是一款基于 C/Python 的高性能开源量化交易研究框架&#xff0c;用于快速策略分析及回测。与其他量化平台或回测软件相比&#xff0c;具备&#xff1a; 超快的回测速度&#xff1b;对完整的系统交易理念进行抽象&#xff0c;并分解为不同的组件&#xff0c;通过重用不同…

Windows下MSYS2下载与安装

下载地址&#xff1a; 官网下载地址 https://www.msys2.org/阿里云镜像下载 https://mirrors.aliyun.com/msys2/distrib/x86_64/https://mirrors.aliyun.com/msys2/distrib/x86_64/msys2-x86_64-20231026.exe?spma2c6h.25603864.0.0.12b92551XW5OSM官网下载 ![官网下载](htt…

使用vscode开发uniapp项目常用的辅助插件,提升开发效率

为什么不使用hbuilder开发呢&#xff1f;因为hbuilder对ts和vue3语法支持并不友好&#xff0c;而且代码提示不智能&#xff0c;也不能使用最近很流行的coplit和CodeGeex智能提示&#xff0c;所以就换掉hbulider&#xff0c;使用我们熟悉的vscode开发吧。 第一个&#xff1a;un…

高德地图设置电子围栏

高德地图设置电子围栏 需求效果图代码实现 需求 给地图上人员锚点设置围栏区域&#xff0c;如果在此区域内则是在线状态&#xff0c;不在此区域内则是离线状态 效果图 双击可编辑或清除当前围栏 代码实现 前端实现区域框选&#xff1a; //引入高德地图sdk"amap/amap…

将全连接层替换为卷积层的意义(CNN和FCN)

全连接层&#xff1a;CNN 将特征整合&#xff0c;用于分类&#xff0c;在图像中具体化为知道图像中有猫&#xff0c;但是不知道猫在哪儿。 在传统CNN中&#xff0c;输入是唯一确定大小的。因为全连接层要求输入是固定的。 全卷积网络&#xff1a;FCN 不仅可以用来分类&…

项目文件下载器,基于Thread多线程

目录 1、Http 工具类 2、关于下载的关系类 2.1 展示下载信息 #下载信息展现线程类 #在主下载类中&#xff0c;进行调用上述线程类 2.2 文件的分块下载 #文件分块下载类 #文件按分块进行分别切分的方法 # 使用 LongAdder 类型&#xff0c;更改 DownLoadInfoThread 展现…

计算机中丢失mfc140u.dll怎么解决

mfc140u.dll是一个Microsoft Visual C库文件&#xff0c;主要用于MFC&#xff08;Microsoft Foundation Class&#xff09;应用程序的开发。它包含了MFC应用程序所需的一些常用功能&#xff0c;如对话框、窗口、菜单等。当mfc140u.dll丢失时&#xff0c;可能会导致MFC应用程序无…

margin-bottom、margin-top设置不起效

问题&#xff1a; 如下&#xff0c;在uniapp项目中使用了tag标签&#xff0c;设置margin时&#xff0c;只有margin-left、margin-right生效&#xff0c;margin-bottom、margin-top设置不起效。f12直接在元素中修改也无效。 原因&#xff1a; uni-ui中的tag标签是行内元素&…

idea 模板参数注释 {@link}

1. 新增组 2. 设置方法注释及变量 增加模板文本 ** * $param$ * return {link $return$} */3. 设置变量表达式 勾选跳过param 参数表达式 groovyScript("def result ;def params \"${_1}\".replaceAll([\\\\[|\\\\]|\\\\s], ).split(,).toList();def param…

Vscode禁止插件自动更新

由于电脑的vscode版本不是很新。2022.10月份的版本1.7.2&#xff0c;电脑vscode的python插件装的也是2022年4月份的某个版本&#xff0c;但插件经常自动更新&#xff0c;导致python代码无法Debug,解决办法&#xff1a; 点设置&#xff0c;搜autoUpdate, 把红色框选成无

Linux中固定ip端口和修改ip地址

一&#xff0c;更改虚拟网络编辑器 1&#xff0c;首先启动VMware&#xff0c;选择自己要更改ip或固定ip的虚拟机&#xff0c;并找到虚拟网络配编辑器&#xff0c;点击进入 2&#xff0c;进入之后需要点击右下角获取管理员权限后才能修改&#xff0c;有管理员权限之后图片如下 …

setpci设定PCIe寄存器

PCIe寄存器信息读取、分析、配置 1.获取bdf &#xff08;bus:device.function&#xff09;地址2.根据bdf地址抓取pci信息3.结合PCIe Spec对读到的信息进行分析使用setpci修改 1.获取bdf &#xff08;bus:device.function&#xff09;地址 在Linux系统下使用命令&#xff1a; l…

django+drf+vue 简单系统搭建 (2) - drf 应用

按照本系统设置目的&#xff0c;是为了建立一些工具用来处理简单的文件。 1. 准备djangorestframework 关于drf的说明请参见&#xff1a;Django REST Framework教程 | 大江狗的博客 本系列直接使用drf的序列化等其他功能。 安装 conda install djangorestframework conda i…

Redis系列之常见数据类型应用场景

文章目录 String简单介绍常见命令应用场景 Hash简单介绍常见命令应用场景 List简单介绍常见命令应用场景 Set简单介绍常见命令应用场景 Sorted Set(Zset)简单介绍常见命令应用场景 Bitmap简单介绍常见命令应用场景 附录 Redis支持多种数据类型&#xff0c;比如String、hash、li…

【达梦数据库】mysql与达梦整数类型对比关系

最近遇了mysql 和达梦整数类型的数据范围对比&#xff0c;做了个表格供大家分享 对比表格 要说明的是我整理的时候&#xff0c;达梦貌似没有无符号整数类型&#xff08;防杠保护&#xff09;&#xff0c;也就是只能将mysql/dm 的有符号整数类型的的范围值进行对比 MYSQL - t…

高性能网络编程 - select、 poll 、epoll 、libevent

文章目录 概述优缺点SelectPollEpollLibEvent 概述 Select&#xff08;选择&#xff09;&#xff1a; Select 是一种传统的 I/O 多路复用机制&#xff0c;用于在类 Unix 操作系统&#xff08;如 Linux&#xff09;中同时管理多个文件描述符&#xff08;如网络套接字或文件&…