速通Docker === 介绍与安装
目录
Docker介绍
Docker优势
Docker组件
Docker CLI (命令行接口)
Docker Host (Docker 守护进程)
容器 (Container)
镜像 (Image)
仓库 (Registry)
关系总结
应用程序部署方式
传统部署 (Traditional Deployment)
虚拟化部署 (Virtualization Deployment)
容器部署 (Container Deployment)
总结
安装Docker
CentOS 移除旧版本docker
macOS 移除旧版本docker
安装/更新最新版本
一、配置 Docker Yum 源相关命令
1. sudo yum install -y yum-utils
2. sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
二、安装最新 Docker 相关命令
1. sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
三、启动 & 开机启动 Docker
1. systemctl enable docker --now
四、配置加速相关命令
1. sudo mkdir -p /etc/docker
2. sudo tee /etc/docker/daemon.json <<-'EOF' ... EOF
3. sudo systemctl daemon-reload
4. sudo systemctl restart docker
Docker介绍
Docker 官网: https://www.docker.com/
Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包到一个轻量级的、可移植的容器中。
Docker优势
一致的环境
开发与生产环境一致性:Docker 确保应用程序在开发、测试和生产环境中运行一致。无论在哪个环境中,应用程序的行为都是相同的,因为所有的依赖项和配置都打包在容器中。
避免“在我的机器上可以运行”的问题:由于环境一致性,开发者可以避免因环境差异导致的运行问题。
隔离性
资源隔离:每个 Docker 容器都是独立的,它们之间相互隔离,不会相互干扰。这意味着你可以运行多个容器,每个容器都可以有自己的依赖项和配置,而不会影响其他容器。
安全性:由于隔离性,容器内的应用程序不会直接访问宿主机的资源,从而提高了安全性。
可移植性
跨平台运行:Docker 容器可以在任何支持 Docker 的平台上运行,无论是 Linux、Windows 还是 macOS。这使得应用程序可以在不同的环境中轻松部署。
云平台支持:大多数云服务提供商都支持 Docker,使得应用程序可以轻松地在不同的云环境中迁移和扩展。
快速部署和扩展
快速启动:Docker 容器启动速度非常快,通常只需几秒钟。这使得开发者在开发和测试过程中可以快速启动和停止容器。
水平扩展:Docker 容器可以轻松地进行水平扩展,通过启动多个容器实例来处理更多的请求。
版本控制和依赖管理
版本控制:Docker 镜像可以进行版本控制,开发者可以轻松地回滚到之前的版本,或者在不同的版本之间切换。
依赖管理:Docker 镜像包含了应用程序的所有依赖项,确保在不同的环境中运行时不会缺少任何依赖。
资源效率
轻量级:Docker 容器比虚拟机更轻量级,因为它们共享宿主机的操作系统内核,而不是每个容器都运行一个完整的操作系统。
资源利用率高:由于轻量级和高效的资源管理,Docker 容器可以更高效地利用系统资源。
社区和生态系统
丰富的镜像库:Docker Hub 提供了大量的公共镜像,开发者可以直接使用这些镜像来快速构建应用程序。
强大的生态系统:Docker 有庞大的社区支持和丰富的工具链,如 Kubernetes、Docker Compose 等,可以帮助开发者更高效地管理和部署容器化应用。
简化开发流程
简化开发环境配置:开发者可以使用 Docker 来定义开发环境,确保所有团队成员使用相同的环境进行开发。
简化测试流程:测试人员可以使用 Docker 容器来运行测试,确保测试环境与生产环境一致。
Docker组件
在 Docker 生态系统中,各个组件之间有着紧密的联系,共同协作以实现容器化应用的构建、分发和运行。以下是 Docker 中各个关键组件之间的关系:
Docker CLI (命令行接口)
定义:Docker CLI 是用户与 Docker 交互的主要工具。它提供了一组命令,允许用户管理 Docker 镜像、容器、网络和存储等资源。
作用:用户通过 Docker CLI 发送命令,这些命令会被发送到 Docker 守护进程(Docker Host)进行处理。
示例命令:docker run, docker build, docker pull, docker push 等。
Docker Host (Docker 守护进程)
定义:Docker Host 是运行 Docker 守护进程(dockerd)的机器。守护进程负责管理 Docker 对象,如容器、镜像、网络和卷等。
作用:Docker Host 接收来自 Docker CLI 的命令,并执行相应的操作。它还负责与 Docker 注册表(仓库)进行通信,以拉取或推送镜像。
关系:Docker Host 是 Docker CLI 和 Docker 容器之间的桥梁。
容器 (Container)
定义:容器是 Docker 中的运行实例,它是基于镜像创建的。容器包含了应用程序及其所有依赖项,并且与宿主机和其他容器隔离。
作用:容器提供了一个轻量级的、可移植的运行环境,使得应用程序可以在任何支持 Docker 的环境中运行。
关系:容器是基于镜像创建的,并且由 Docker Host 管理。容器可以被启动、停止、删除和迁移。
镜像 (Image)
定义:镜像是用于创建容器的只读模板。它包含了运行应用程序所需的所有文件、库、配置和依赖项。
作用:镜像是容器的构建块,它定义了容器的行为和环境。镜像可以通过 Dockerfile 构建,也可以从 Docker 仓库中拉取。
关系:镜像是容器的蓝图,容器是镜像的运行实例。镜像可以被推送到 Docker 仓库,也可以从仓库中拉取。
仓库 (Registry)
定义:仓库是存储和分发 Docker 镜像的地方。Docker Hub 是最常用的公共仓库,但也可以使用私有仓库。
作用:仓库允许用户共享和分发镜像,使得团队成员可以轻松获取和使用相同的镜像。
关系:Docker Host 可以从仓库中拉取镜像,也可以将本地构建的镜像推送到仓库。Docker CLI 提供了 docker pull 和 docker push 命令来与仓库交互。
关系总结
Docker CLI 是用户与 Docker 交互的接口,用户通过它发送命令。
Docker Host 是运行 Docker 守护进程的机器,负责处理 Docker CLI 的命令并管理容器和镜像。
容器 是基于镜像创建的运行实例,由 Docker Host 管理。
镜像 是容器的只读模板,定义了容器的行为和环境。
仓库 是存储和分发镜像的地方,Docker Host 可以从仓库中拉取镜像,也可以将本地镜像推送到仓库。
通过这些组件的协作,Docker 提供了一个完整的容器化解决方案,使得应用程序的构建、分发和运行变得更加简单和高效。
应用程序部署方式
传统部署、虚拟化部署和容器部署是三种不同的应用程序部署方式,它们在资源利用、隔离性、可移植性和管理复杂性等方面有着显着的区别。以下是它们的详细比较:
传统部署 (Traditional Deployment)
特点:
- 直接在物理服务器上运行:应用程序直接安装在物理服务器上,使用服务器的操作系统及其资源。
- 资源共享有限:多个应用程序通常不能在同一台物理服务器上运行,因为它们可能会相互干扰。
- 环境依赖性强:应用程序对操作系统和服务器环境的依赖性强,环境差异可能导致应用程序无法正常运行。
- 扩展性差:扩展应用程序通常需要增加物理服务器,成本高且管理复杂。
优点:
- 简单直接:部署过程相对简单,不需要额外的虚拟化或容器化技术。
- 性能高:直接在物理硬件上运行,性能通常较高。
缺点:
- 资源利用率低:物理服务器的资源利用率通常较低,因为多个应用程序不能共享同一台服务器。
- 环境一致性差:开发、测试和生产环境可能存在差异,导致“在我的机器上可以运行”的问题。
- 扩展性差:扩展应用程序需要增加物理服务器,成本高且管理复杂。
虚拟化部署 (Virtualization Deployment)
特点:
- 在虚拟机上运行:应用程序运行在虚拟机(VM)中,每个虚拟机都有自己的操作系统(Guest OS)。
- 资源隔离:每个虚拟机相互隔离,不会相互干扰,提高了安全性。
- 资源共享:多个虚拟机可以运行在同一台物理服务器上,提高了资源利用率。
- 可移植性:虚拟机可以在不同的物理服务器之间迁移,提高了可移植性。
优点:
- 资源利用率高:多个虚拟机可以共享同一台物理服务器的资源,提高了资源利用率。
- 隔离性好:每个虚拟机相互隔离,提高了安全性。
- 可移植性好:虚拟机可以在不同的物理服务器之间迁移,提高了可移植性。
缺点:
- 性能开销:虚拟机需要运行完整的操作系统,性能开销较大。
- 启动时间长:虚拟机启动时间较长,通常需要几分钟。
- 管理复杂:虚拟机的管理和维护相对复杂,需要专门的虚拟化管理工具。
容器部署 (Container Deployment)
特点:
- 在容器中运行:应用程序运行在容器中,容器共享宿主机的操作系统内核。
- 轻量级:容器比虚拟机更轻量级,因为它们不需要运行完整的操作系统。
- 资源隔离:容器之间相互隔离,不会相互干扰,提高了安全性。
- 快速启动:容器启动速度非常快,通常只需几秒钟。
- 可移植性:容器可以在任何支持 Docker 的环境中运行,提高了可移植性。
优点:
- 轻量级:容器比虚拟机更轻量级,资源利用率高。
- 快速启动:容器启动速度非常快,通常只需几秒钟。
- 可移植性好:容器可以在任何支持 Docker 的环境中运行,提高了可移植性。
- 环境一致性好:开发、测试和生产环境一致,避免了“在我的机器上可以运行”的问题。
缺点:
- 隔离性相对较弱:虽然容器之间相互隔离,但隔离性不如虚拟机强。
- 依赖宿主机内核:容器依赖宿主机的操作系统内核,因此在不同操作系统上运行可能会有兼容性问题。
总结
通过以上比较可以看出,容器部署在资源利用率、启动时间、可移植性和环境一致性等方面具有显着优势,但在隔离性和对宿主机内核的依赖性方面存在一定的局限性。虚拟化部署则在隔离性和资源利用率方面表现较好,但性能开销和管理复杂性较高。传统部署则相对简单直接,但在资源利用率和环境一致性方面存在明显不足。
安装Docker
国内常见云平台:
阿里云、腾讯云、华为云、青云……使用 CentOS 7.9.
在安装 Docker Engine 之前,您需要卸载所有有冲突的软件包。
您的 Linux 发行版可能提供了非官方的 Docker 软件包,这些软件包可能会与 Docker 提供的官方软件包冲突。您必须在安装 Docker Engine 正式版之前卸载这些软件包。
CentOS 移除旧版本docker
-
docker
:这是旧版本Docker的基础软件包,包含了Docker的核心功能,如容器的创建、管理等。 -
docker-client
:Docker客户端工具,用于用户与Docker守护进程进行交互,执行各种容器操作命令,如docker run
、docker ps
等。 -
docker-client-latest
:旧版本Docker中用于提供最新客户端功能的软件包,可能包含一些新特性或改进的客户端功能。 -
docker-common
:包含一些Docker通用的配置文件、脚本等,用于不同版本Docker软件包之间的共享。 -
docker-latest
:旧版本Docker中用于提供最新版本Docker守护进程及相关功能的软件包。 -
docker-latest-logrotate
:用于管理最新版本Docker日志轮转的工具,确保Docker日志文件不会无限增长,能够按照一定规则进行备份和清理。 -
docker-logrotate
:管理旧版本Docker日志轮转的工具,功能与docker-latest-logrotate
类似,但针对的是旧版本Docker的日志管理。 -
docker-engine
:旧版本Docker的引擎软件包,是Docker容器运行的核心组件,负责容器的调度、资源管理等关键功能。
# CentOS 移除旧版本docker
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
卸载 Docker Engine
-
docker-ce
:Docker社区版(Community Edition)的软件包,是Docker的开源版本,包含了Docker的核心功能。 -
docker-ce-cli
:Docker社区版的客户端工具软件包,用于用户与Docker守护进程进行交互,与docker-client
类似,但在新的软件包命名体系下,它是独立的软件包。 -
containerd.io
:containerd是一个开源的容器运行时,Docker在运行容器时会依赖containerd来管理和执行容器的底层操作。删除这个软件包是为了彻底移除与Docker相关的容器运行时组件。
sudo yum remove docker-ce docker-ce-cli containerd.io
删除 Docker 数据:
/var/lib/docker
目录是Docker默认的数据存储目录,里面包含了所有容器的镜像、容器数据、网络配置、卷等信息。删除这个目录会彻底清除Docker创建的所有数据,包括已经下载的镜像、运行过的容器数据等,相当于对Docker的数据进行了“格式化”。
/var/lib/containerd
目录是containerd的默认数据存储目录,里面存储了containerd运行时的一些数据和状态信息。删除这个目录是为了清除containerd相关的数据,进一步确保与Docker相关的底层数据被彻底清理。
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
删除 Docker 配置文件(可选):
/etc/docker
目录是Docker的配置文件目录,里面包含了Docker的全局配置文件,如daemon.json
等。这些配置文件用于设置Docker守护进程的运行参数,如镜像加速器配置、日志级别等。删除这个目录会移除所有自定义的Docker配置,使Docker恢复到默认配置状态。
sudo rm -rf /etc/docker
卸载 Docker Compose(如果安装了)
/usr/local/bin/docker-compose
是Docker Compose的可执行文件路径。Docker Compose是一个用于定义和运行多容器Docker应用的工具,通过YAML文件来配置应用的服务、网络和卷等。删除这个文件可以卸载Docker Compose,使其不再可用。
sudo rm /usr/local/bin/docker-compose
macOS 移除旧版本docker
卸载 Docker Desktop
打开“应用程序”文件夹:
在 Finder 中,导航到“应用程序”文件夹。
删除 Docker Desktop:
找到“Docker”应用程序,将其拖到“废纸篓”中。
清空废纸篓:
右键点击“废纸篓”图标,选择“清空废纸篓”。
删除 Docker 数据(可选):
打开终端,运行以下命令删除 Docker 数据:
rm -rf ~/Library/Containers/com.docker.docker
rm -rf ~/Library/Application\ Support/Docker\ Desktop
rm -rf ~/Library/Group\ Containers/group.com.docker
安装/更新最新版本
官网完整手册: https://docs.docker.com/desktop/install/linux/
一、配置 Docker Yum 源相关命令
1. sudo yum install -y yum-utils
这个命令的作用是安装 yum-utils
这个软件包。yum-utils
是一个包含多个实用工具的集合,用于增强 Yum(Yellowdog Updater Modified)的功能。Yum 是 CentOS 等基于 RPM(Red Hat Package Manager)的 Linux 发行版中的包管理器,用于安装、更新、查询和删除软件包。通过安装 yum-utils
,我们可以使用其中的 yum-config-manager
工具来管理 Yum 源(repository)配置文件。
-
参数解释:
-
sudo
:以超级用户(root)权限执行命令,因为修改系统配置文件等操作需要管理员权限。 -
yum
:包管理器。 -
install
:指定要进行安装操作。 -
-y
:自动回答“yes”,在安装过程中如果遇到需要用户确认的提示(如是否继续安装等),会自动选择“yes”,这样可以避免手动干预,使安装过程更顺畅。 -
yum-utils
:要安装的软件包名称。
-
2. sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
这个命令的作用是添加阿里云的 Docker Yum 源。通过这个命令,我们可以将阿里云提供的 Docker 软件仓库添加到系统的 Yum 源列表中,这样后续就可以从阿里云的镜像服务器上下载和安装 Docker 相关软件包,通常能获得更快的下载速度。
-
参数解释:
-
sudo
:以管理员权限执行。 -
yum-config-manager
:用于管理 Yum 源配置的工具。 -
--add-repo
:指定要添加的 Yum 源仓库文件。这个参数后面跟的是仓库文件的 URL 地址,http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
就是阿里云提供的 Docker Yum 源的仓库文件地址。这个文件包含了仓库的配置信息,如仓库的名称、URL、是否启用等。
-
二、安装最新 Docker 相关命令
1. sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
这个命令的作用是安装 Docker 相关软件包。这个命令会从之前配置好的 Yum 源(包括阿里云的 Docker 源等)中下载并安装 Docker 的各个组件,包括 Docker Engine(docker-ce
)、Docker CLI(docker-ce-cli
)、containerd(containerd.io
)、Docker Buildx 插件(docker-buildx-plugin
)和 Docker Compose 插件(docker-compose-plugin
)。
-
参数解释:
-
sudo
:以管理员权限执行。 -
yum
:包管理器。 -
install
:安装操作。 -
-y
:自动回答“yes”。 -
docker-ce
:Docker Engine 社区版,是运行容器的核心组件。 -
docker-ce-cli
:Docker CLI(命令行界面)工具,用于与 Docker Engine 交互,执行各种 Docker 命令,如docker run
、docker build
等。 -
containerd.io
:containerd 是一个开源的容器运行时,Docker Engine 依赖它来管理容器的生命周期。这个软件包提供了 containerd 的核心功能。 -
docker-buildx-plugin
:Docker Buildx 插件,它扩展了 Docker CLI 的构建功能,允许用户创建多平台的 Docker 镜像,这对于构建跨不同架构(如 ARM、AMD64 等)的镜像非常有用。 -
docker-compose-plugin
:Docker Compose 插件,Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过这个插件,用户可以使用docker compose
命令来管理多个容器的部署,例如在一个docker-compose.yml
文件中定义多个服务(容器),然后一键启动、停止或更新这些服务。
-
三、启动 & 开机启动 Docker
1. systemctl enable docker --now
这个命令的作用是启用 Docker 服务,并立即启动它。systemctl
是一个用于控制 systemd 系统和服务管理器的命令,它可以用来启动、停止、重启服务,以及设置服务的开机启动等。
-
参数解释:
-
systemctl
:用于控制 systemd 系统和服务管理器的命令。 -
enable
:启用服务,使其在系统启动时自动启动。 -
docker
:指定要操作的服务名称,这里是 Docker 服务。 -
--now
:立即启动服务。这个参数是一个快捷方式,等同于先执行systemctl enable docker
,然后执行systemctl start docker
。
-
四、配置加速相关命令
1. sudo mkdir -p /etc/docker
这个命令的作用是创建 /etc/docker
目录。如果这个目录已经存在,命令不会报错。mkdir
是创建目录的命令,-p
参数表示如果父目录不存在,则会一并创建。
-
参数解释:
-
sudo
:以管理员权限执行。 -
mkdir
:创建目录的命令。 -
-p
:如果父目录不存在,则会一并创建。 -
/etc/docker
:要创建的目录路径。
-
2. sudo tee /etc/docker/daemon.json <<-'EOF' ... EOF
这个命令的作用是创建或覆盖 /etc/docker/daemon.json
文件,并写入配置内容。tee
命令用于将输出同时写入到文件和标准输出(屏幕)。这里使用了重定向和 Here Document 的方式来写入配置内容。
-
参数解释:
-
sudo
:以管理员权限执行。 -
tee
:将输出同时写入到文件和标准输出。 -
/etc/docker/daemon.json
:要写入的文件路径。 -
<<-'EOF'
:Here Document 的开始标记,EOF
是一个约定的结束标记,表示后续的内容将作为输入传递给tee
命令。 -
...
:这里省略了具体的配置内容,实际使用时应该填写配置内容,例如:{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"] }
这段配置表示设置 Docker 的镜像加速器为腾讯云的镜像加速器。
-
当你修改了 Docker 的 daemon.json 配置文件后,通常需要重启 Docker 服务以使更改生效。
3. sudo systemctl daemon-reload
这个命令的作用是重新加载 systemd 的配置文件。当修改了服务的配置文件后,需要执行这个命令使配置生效。
-
参数解释:
-
sudo
:以管理员权限执行。 -
systemctl
:用于控制 systemd 系统和服务管理器的命令。 -
daemon-reload
:重新加载 systemd 的配置文件。
-
4. sudo systemctl restart docker
这个命令的作用是重启 Docker 服务。重启服务可以使新的配置生效。
-
参数解释:
-
sudo
:以管理员权限执行。 -
systemctl
:用于控制 systemd 系统和服务管理器的命令。 -
restart
:重启服务。 -
docker
:指定要操作的服务名称,这里是 Docker 服务。
-
通过这些命令,你可以成功配置 Docker 的 Yum 源,安装 Docker,启动 Docker 服务,并配置镜像加速器。
相关文章:
速通Docker === 介绍与安装
目录 Docker介绍 Docker优势 Docker组件 Docker CLI (命令行接口) Docker Host (Docker 守护进程) 容器 (Container) 镜像 (Image) 仓库 (Registry) 关系总结 应用程序部署方式 传统部署 (Traditional Deployment) 虚拟化部署 (Virtualization Deployment) 容器部署…...
云平台一键部署【Video-Background-Removal】视频换背景,无任何限制,随意换
Video-Background-Removal 是一款革命性的视频背景替换工具,旨在让用户轻松实现视频背景的快速更换。无论你是专业创作者还是普通用户,这款软件都能让你在几秒钟内改变背景,完全消除限制,随心所欲,随时随地想换就换&am…...
AI刷题-最大矩形面积问题、小M的数组变换
目录 一、最大矩形面积问题 问题描述 输入格式 输出格式 输入样例 输出样例 数据范围 解题思路: 问题理解 数据结构选择 算法步骤 最终代码: 运行结果: 二、小M的数组变换 问题描述 测试样例 解题思路: 问题…...
ts类型断言各种写法
在 TypeScript 中,类型断言(Type Assertion)有两种主要的写法:**尖括号语法** (<Type>) 和 **as 关键字语法**。这两种方式都可以用来告诉编译器某个表达式的具体类型,但它们在不同的上下文中有各自的适用性和局…...
第十二章:算法与程序设计
文章目录: 一:基本概念 1.算法与程序 1.1 算法 1.2 程序 2.编译预处理 3.面向对象技术 4.程序设计方法 5.SOP标志作业流程 6.工具 6.1 自然语言 6.2 流程图 6.3 N/S图 6.4 伪代码 6.5 计算机语言 二:程序设计 基础 1.常数 …...
计算机网络 | IP地址、子网掩码、网络地址、主机地址计算方式详解
关注:CodingTechWork 引言 在计算机网络中,IP地址、子网掩码和网络地址是构建网络通信的基本元素。无论是企业网络架构、互联网连接,还是局域网(LAN)配置,它们都起着至关重要的作用。理解它们的工作原理&a…...
一文读懂高频考题!进程、线程、协程最全方位对比剖析
一、基本概念 (一)定义与特征 进程 在计算机科学里,进程是操作系统正在运行的程序的实例,是资源分配的基本单位。就好比每个进程都像一个小王国,它有自己独立的领土,这里的领土就是内存空间、代码块、数据和文件句柄等资源。比如说,你在电脑上同时打开一个文字处理软件…...
Elasticsearch搜索引擎(二)
RestClient 基础 前言一、RestAPI1. 初始化 *RestClient*2. 创建索引库3. 删除索引库4. 判断索引库是否存在 二、RestClient操作文档1.新增文档2.查询文档3. 删除文档4. 修改文档5. 批量导入文档 前言 ES官方提供了各种不同语言的客户端用来操作ES,这些客户端的本质…...
docker 部署 Kafka 单机和集群
一、准备工作 安装 Docker 确保本机已安装 Docker。可以通过以下命令检查 Docker 是否已安装:docker --version如果未安装,可以访问 Docker 官网下载并安装 Docker Desktop(Windows 和 Mac)或使用包管理器安装(Linux&…...
新增文章分类功能
总说 过程参考黑马程序员SpringBoot3Vue3全套视频教程,springbootvue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili 目录 总说 一、功能实现 1.1 Controller层 1.2 Service层 1.3 Impl层 1.4 Mapper层 1.5 测试接口 二、优化 2.1 2.2 一、…...
[c语言日寄]精英怪:三子棋(tic-tac-toe)3命慢通[附免费源码]
哈喽盆友们,今天带来《c语言》游戏中[三子棋boss]速通教程!我们的目标是一边编写博文,一边快速用c语言实现三子棋游戏。准备好瓜子,我们计时开始! 前期规划 在速通中,我们必须要有清晰的前期规划…...
【Rust自学】12.1. 接收命令行参数
12.1.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print),是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步: 接收命令行参数&am…...
Qt应用之MDI(多文档设计)
qt creator 版本6.8.0 MinGW 64bit 由此模块可以扩展成设计一个qt文本编辑器。 界面如下 部分功能展示如下 新建文件 打开文件 mdi模式、级联模式和平铺模式 界面和程序构建过程。 1.如图所需.cpp和.h文件 2.mainwindow.ui和tformdoc.ui界面布局如下 不懂什么是Action如何…...
使用FFmpeg和Python将短视频转换为GIF的使用指南
使用FFmpeg和Python将短视频转换为GIF的使用指南 在数字时代,GIF动图已成为表达情感和分享幽默的重要媒介。无论是社交媒体上的搞笑片段还是创意项目中的视觉效果,GIF都能迅速抓住观众的注意力。然而,很多人不知道如何将短视频转换为GIF。本…...
Qt 各版本选择
嵌入式推荐用 Qt4.8,打包的程序小:Qt4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的 最后支持xp系统的长期支持版本:Qt5.6.3;Qt5.7.0是最后支持xp系统的非长期支持版本。 最后提供mysql数据库插件的版本…...
Web基础-分层解耦
思考:什么是耦合?什么是内聚?软件设计原则是什么? 耦合:衡量软件中各个层 / 各个模块的依赖关联程度。 内聚:软件中各个功能模块内部的功能联系。 软件设计原则:高内聚低耦合。 那我们该如何实现…...
G1原理—8.如何优化G1中的YGC
大纲 1.5千QPS的数据报表系统发生性能抖动的优化(停顿时间太小导致新生代上不去) 2.由于产生大量大对象导致系统吞吐量降低的优化(大对象太多频繁Mixed GC) 3.YGC其他相关参数优化之TLAB参数优化 4.YGC其他相关参数优化之RSet、PLAB和大对象的处理优化 1.5千QPS的数据报表系…...
Hugging Face 的 Trainer类用法
一、使用方法 Hugging Face 的 Trainer 类是一个高级API,用于简化训练、评估和预测的流程。以下是如何使用 Trainer 类的基本步骤: 1. 导入必要的类和函数 首先,您需要导入 Trainer 类以及其他可能需要的类或函数。 from transformers im…...
RabbitMQ前置概念
文章目录 1.AMQP协议是什么?2.rabbitmq端口介绍3.消息队列的作用和使用场景4.rabbitmq工作原理5.整体架构核心概念6.使用7.消费者消息推送限制(work模型)8.fanout交换机9.Direct交换机10.Topic交换机(推荐)11.声明队列…...
IDEA2023版中TODO的使用
介绍:TODO其实本质上还是注释,只不过加上了TODO这几个字符,可以让使用者快速找到。 注意:在类、接口等文件中,注释是使用// 即:// TODO 注释内容 在配置文件中,注释是使用# 即:# TO…...
(STM32笔记)十二、DMA的基础知识与用法 第二部分
我用的是正点的STM32F103来进行学习,板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话,用的也是这个板子和教程。 DMA的基础知识与用法 二、DMA传输设置1、数据来源与数据去向外设到存储器存储器到外设存储器到存储器 2、每次传输大小3、传…...
windows系统“GameInputRedist.dll”文件丢失或错误导致游戏运行异常如何解决?windows系统DLL文件修复方法
GameInputRedist.dll是存放在windows系统中的一个重要dll文件,缺少它可能会造成部分游戏不能正常运行。当你的电脑弹出提示“无法找到GameInputRedist.dll”或“计算机缺少GameInputRedist.dll”等错误问题,请不用担心,我们将深入解析DLL文件…...
使用分割 Mask 和 K-means 聚类获取天空的颜色
引言 在计算机视觉领域,获取天空的颜色是一个常见任务,广泛应用于天气分析、环境感知和图像增强等场景。本篇博客将介绍如何通过已知的天空区域 Mask 提取天空像素,并使用 K-means 聚类分析天空颜色,最终根据颜色占比查表得到主导…...
UML系列之Rational Rose笔记四:时序图(顺序图_序列图)
时序图有很多画法,这基本上能算rose里面要求最乱的一种图了;有些人的需求是BCE模式,这是正常规范点的,有些人就不需要,有些需要用数据库交互,有些不需要;没有一个较为统一的需求;在此…...
nginx反向代理http 和 https(案例)
说明:在香港开了一台虚拟机,主要用于将来自国外访问的80和443代理到大陆IDC机房 (1) 定义80和443的upstream 211.155.82.174 是keepalive中VIP对应的公网IP(在国内访问www.playyx.com解析到211.155.82.174) upstream new_server…...
Dify应用-工作流
目录 DIFY 工作流参考 DIFY 工作流 2025-1-15 老规矩感谢参考文章的作者,避免走弯路。 2025-1-15 方便容易上手 在dify的一个桌面上,添加多个节点来完成一个任务。 每个工作流必须有一个开始和结束节点。 节点之间用线连接即可。 每个节点可以有输入和输出 输出类型有,字符串,…...
装备制造业:建立项目“四算”管理:以合同为源头,以项目为手段实现合同的测算、预算、核算与决算的管控体系
尊敬的各位管理层: 大家好!作为装备制造业的 CFO,我今天要向大家汇报的是如何建立项目“四算”管理,即以合同为源头,以项目为手段实现合同的测算、预算、核算与决算的管控体系。在当前市场竞争激烈、成本压力不断增大…...
Centos7将/dev/mapper/centos-home磁盘空间转移到/dev/mapper/centos-root
1、查看存储 df -h文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 126G 0 126G 0% /dev tmpfs 126G 0 126G 0% /dev/shm tmpfs 126G 19M 126G 1% /run tmpfs …...
docker 部署 MantisBT
1. docker 安装MantisBT docker pull vimagick/mantisbt:latest 2.先运行实例,复制配置文件 docker run -p 8084:80 --name mantisbt -d vimagick/mantisbt:latest 3. 复制所需要配置文件到本地路径 docker cp mantisbt:/var/www/html/config/config_inc.php.…...
【Vue - Element 】实现表单输入框的远程搜索功能
需求 表单是一个常见的元素,而在表单中,常常需要用户从大量的数据中选择一个或多个选项。 为了提高用户体验,提供远程搜索功能可以帮助用户快速找到所需的选项,而不是从冗长的下拉列表中手动查找。 以该需求为例,我…...
学习华为熵减:激发组织活力(系列之三)
目录 为什么学习华为? 学习华为什么? 一、势:顺势而为,在风口上猪都会飞起来。 二、道:就是认识和利用规律层面,文化和制度创新就是企业经营之道。 三、法:就是一套价值管理的变革方法论。…...
多种vue前端框架介绍
学如逆水行舟,不进则退。 在现今的软件开发领域,Vue.js凭借其高效、灵活和易于上手的特性,成为了前端开发的热门选择。对于需要快速搭建企业级后台管理系统的开发者而言,使用现成的Vue后台管理系统模板无疑是一个明智之举。 本文…...
C语言重点回顾(持续更新中~)
个人见解,有异议可以留言~ 第一讲:初识C语言 目录 1.编译和链接 2.main函数 3.库函数 4.关键字 5.字符和字符串 6.转义字符 1.编译和链接 初始的C语言源代码是一个文本文件,要想将一个文本文件变成一个执行文件,需要经过编…...
Navicat Premium 原生支持阿里云 PolarDB 数据库
近日,我司旗下的 Navicat Premium 软件通过了阿里云 PolarDB 数据库产品生态集成认证,这标志着 Navicat 通过原生技术全面实现了对秒级弹性、高性价比、稳定可靠的PolarDB 数据库三大引擎(PolarDB MySQL版、PolarDB PostgreSQL版和 PolarDB f…...
青少年编程与数学 02-006 前端开发框架VUE 25课题、UI数据
青少年编程与数学 02-006 前端开发框架VUE 25课题、UI数据 一、UI数据二、Element Plus处理响应式数据三、Vuetify处理响应式数据 课题摘要:本文探讨了UI数据在用户界面中的重要性和处理方法。UI数据包括展示数据、用户输入、状态数据等,对用户体验和应用交互性有直…...
用css和html制作太极图
目录 css相关参数介绍 边距 边框 伪元素选择器 太极图案例实现、 代码 效果 css相关参数介绍 边距 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>*{margin: 0;padding: 0;}div{width: …...
软件测试入门—功能需求分析:以一个旅游管理系统为例
在软件测试的旅程中,功能需求分析是测试人员构建高质量测试用例的基础,它确保软件的各项功能都能按照预期正常运行。接下来,我们将以一个旅游管理系统为例,详细阐述如何进行功能需求分析,帮助大家更清晰地掌握这一重要…...
深度解析Linux中关于操作系统的知识点
操作系统概述与核心概念 任何计算机系统都包含一个基本的程序集合,成为操作系统OS 操作系统是一款进行软硬件管理的软件 操作系统包括: 内核(进程管理,内存管理,驱动管理) 其他程序(例如数据…...
【深度学习】关键技术-激活函数(Activation Functions)
激活函数(Activation Functions) 激活函数是神经网络的重要组成部分,它的作用是将神经元的输入信号映射到输出信号,同时引入非线性特性,使神经网络能够处理复杂问题。以下是常见激活函数的种类、公式、图形特点及其应…...
分布式ID的实现方案
1. 什么是分布式ID 对于低访问量的系统来说,无需对数据库进行分库分表,单库单表完全可以应对,但是随着系统访问量的上升,单表单库的访问压力逐渐增大,这时候就需要采用分库分表的方案,来缓解压力。 …...
电脑有两张网卡,如何实现同时访问外网和内网?
要是想让一台电脑用两张网卡,既能访问外网又能访问内网,那可以通过设置网络路由还有网卡的 IP 地址来达成。 检查一下网卡的连接 得保证电脑的两张网卡分别连到外网和内网的网络设备上,像路由器或者交换机啥的。 给网卡配上不一样的 IP 地…...
Linux 查看内存命令
目录 1. free 2. vmstat 3. top 4. htop 5. /proc/meminfo 1. free free命令是最常用的查看内存使用情况的命令。它显示系统的总内存、已使用内存、空闲内存和交换内存的总量。 free -h -h 选项:以易读的格式(如GB、MB)显示内存大小。…...
无法联网怎么在docker中安装Ribbitmq
如果无法连接互联网,无法在Docker中安装RabbitMQ。但是,您可以使用本地镜像或者手动下载RabbitMQ的Docker镜像并进行安装。 以下是使用本地镜像的步骤: 从可以上网的计算机上拉取RabbitMQ的官方Docker镜像: docker pull rabbitmq:…...
Spring Boot 定时任务搭建及Quartz对比详解
前言: 之前在帮别人搭建定时任务时 被问到为什么不用 Quartz 反而使用 SpringBoot 定时任务 以下是 SpringBoot 定时任务 的使用情况 大家可参考具体情况选择使用 1. 概述: Spring Boot 定时器是基于 Spring Framework 的 Task Scheduling 模块实现的…...
集中式架构vs分布式架构
一、集中式架构 如何准确理解集中式架构 1. 集中式架构的定义 集中式架构是一种将系统的所有计算、存储、数据处理和控制逻辑集中在一个或少数几个节点上运行的架构模式。这些中央节点(服务器或主机)作为系统的核心,负责处理所有用户请求和…...
中国数字安全产业年度报告(2024)
数字安全是指,在全球数字化背景下,合理控制个人、组织、国家在各种活动中面临的数字风险,保障数字社会可持续发展的政策法规、管理措施、技术方法等安全手段的总和。 数字安全领域可从三个方面对应新质生产力的三大内涵:一是基于大型语言模型…...
Python Wi-Fi密码测试工具
Python Wi-Fi测试工具 相关资源文件已经打包成EXE文件,可双击直接运行程序,且文章末尾已附上相关源码,以供大家学习交流,博主主页还有更多Python相关程序案例,秉着开源精神的想法,望大家喜欢,点…...
深入探讨DICOM医学影像中的MPPS服务及其具体实现
深入探讨DICOM医学影像中的MPPS服务及其具体实现 1. 引言 在医疗影像的管理和传输过程中,DICOM(数字影像和通信医学)标准发挥着至关重要的作用。除了DICOM影像的存储和传输(如影像存储SCP和影像传输SCP),…...
【Rust自学】12.3. 重构 Pt.1:改善模块化
12.3.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print),是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步: 接收命令行参数读取…...
Cosmos:英伟达发布世界基础模型,为机器人及自动驾驶开发加速!
1. 简介 在2025年消费电子展(CES)上,NVIDIA发布了全新的Cosmos平台,旨在加速物理人工智能(AI)系统的开发,尤其是自主驾驶车辆和机器人。该平台集成了生成式世界基础模型(WFM&#x…...