当前位置: 首页 > news >正文

『Docker入门指南』- 详细安装与配置教程,助你起航容器化世界!

引言

在探索云计算和自动化部署的时代,Docker以其独特的容器化技术站在了风口浪尖。如果你期待着无缝地将你的应用从一个环境迁移到另一个环境,那么Docker无疑是你的得力助手。但首先,我们得学会如何正确地安装和配置Docker。这篇文章将详细指导你完成这一关键步骤。

一、Docker的安装

1. 为什么要选择Docker?

  • 容器与虚拟机的对比
特征Docker容器虚拟机
隔离级别操作系统级别隔离硬件级别隔离
启动时间秒级分钟级
系统开销低,共享宿主机内核高,每个虚拟机运行完整的操作系统副本
性能接近原生,因为容器直接运行在宿主机的操作系统上一般较低,因为需要通过虚拟硬件层
硬盘使用较少,容器和层共享宿主机的文件系统较多,每个虚拟机都有自己的文件系统
管理复杂度较低,一般通过Docker命令或编排工具进行管理较高,需要管理操作系统和虚拟硬件配置
移植性高,容器可以在任何Docker环境中运行较低,虚拟机需要特定虚拟化平台支持
资源分配可以在运行时动态分配资源启动时分配资源,调整资源可能需要重启虚拟机
安全性通常认为比虚拟机差,因为容器共享宿主机的内核通常认为比容器好,因为提供了完整的隔离
场景适用性适合微服务、持续集成和开发环境适合需要完整操作系统隔离的应用,如提供云服务
  • Docker的跨平台优势
    1. 一致性和可移植性:
      Docker容器在任何支持Docker的主机上运行时都提供一致的环境。这意味着开发者可以在本地开发和测试容器化应用,然后将它们部署到生产环境,无论是在云服务器上、物理服务器还是虚拟机上,都不需要修改代码或配置。

    2. 多平台支持:
      Docker的多平台支持使容器可以在多种操作系统上运行,包括Linux、Windows和macOS。此外,Docker还可以创建和运行ARM架构的容器,这使得它适用于物联网(IoT)设备和轻量级服务器。

    3. Docker Hub和容器镜像:
      通过Docker Hub等容器注册服务,用户可以轻松地存储和分享容器镜像。这些镜像可以在不同的平台之间共享和重用,从而加快了开发和部署过程,并确保了应用程序的一致性。

    4. 开放标准:
      Docker使用开放标准如OCI(Open Container Initiative)来定义容器格式和运行时环境,这有助于确保容器的兼容性和互操作性,进一步支撑了跨平台特性。

    5. 构建一次,运行处处:
      Docker使得“构建一次,运行任何地方”成为可能。只要创建了Docker镜像,你就可以在任何Docker环境中运行它,无需担心依赖冲突或环境不一致的问题。

    6. 开发者工具的集成:
      Docker与多种开发工具和IDE集成,如Visual Studio Code、Eclipse等,这为跨平台开发带来便利。

    7. 持续集成和持续部署(CI/CD):
      在CI/CD流程中,Docker容器可以确保应用程序在从开发到生产的整个流水线中有相同的行为,支持自动化测试和部署,无论目标平台。

2. 在Windows上安装Docker

在Windows上安装Docker通常需要使用Docker Desktop,是Docker官方提供的Windows用戶界面工具,允许你管理容器、镜像和设置。以下是详细的安装步骤:

  1. 系统要求检查:

    • 确认你的Windows系统是否满足Docker Desktop的最低系统要求,比如支持Hyper-V虚拟化功能,并且是64位的Windows 10 Pro、Enterprise或Education版本(Build 15063或更高版本),或Windows 11。
  2. 启用Hyper-V和Containers特性:

    • 打开控制面板,选择“程序”。
    • 点击“启用或关闭Windows功能”。
    • 找到并勾选“Hyper-V”和“容器”选项。
    • 点击“确定”并重启计算机以完成安装。

  1. 下载Docker Desktop安装程序:
    • 访问Docker官网下载页面:https://www.docker.com/get-started/
    • 选择对应版本点击下载安装程序。

  1. 运行安装程序:

    • 双击下载的Docker Desktop安装文件。
    • 在安装向导中,你可以根据个人喜好勾选是否希望建立Docker Desktop的快捷方式或者是否希望Docker Desktop随Windows启动等选项。
  2. 完成安装并重启:

    • 完成安装向导后,重启计算机确保设置正确应用。
  3. 启动Docker Desktop:

    • 在重启后,运行Docker Desktop。当它启动时,Docker图标会出现在系统托盘中。
    • 系统托盘中的Docker图标表明Docker正在运行,并可能需要一点时间来启动服务。
  4. 配置Docker设置(可选):

    • 你可以右键点击系统托盘中的Docker图标,选择“Settings”来调整Docker的配置,如更改镜像存储位置、设置代理服务器等。
  5. 通过命令行界面测试Docker安装:

    • 打开命令提示符、Powershell或任何你喜欢的终端。
    • 输入命令 docker --version 来检查Docker版本,确保它已正确安装。
    • 运行 docker run hello-world 来下载一个测试镜像,并在容器中运行,这可以验证Docker Daemon是否已正确启动并且可以创建容器。

完成以上步骤后,你就可以开始使用Docker来创建和管理容器了。记得查看Docker的官方文档来获取更多关于如何使用Docker的信息。

3. 在macOS上安装Docker

在macOS上安装Docker主要是通过安装Docker Desktop for Mac,它提供了Docker引擎、Docker CLI客户端、Docker Compose、Kubernetes以及其他必要工具。以下是安装步骤:

  1. 系统要求检查:

    • 确保你的Mac系统满足Docker Desktop的最低系统要求。你需要macOS的最新版本或者至少是支持的最低版本,并且Mac硬件需要是64位处理器。Docker 官方建议 MacOS 必须是版本 11 或更高版本,如果版本较低,建议先升级 MacOS 版本。
  2. 下载Docker Desktop安装程序:

    • 访问Docker官方网站的Docker Desktop for Mac下载页面:https://www.docker.com/products/docker-desktop/
    • 选择适配自己电脑的安装包。

  1. 安装Docker Desktop:

    • 双击下载的.dmg文件以打开安装器,然后拖动Docker图标到Applications文件夹,以将Docker Desktop安装到你的Mac上。
  2. 启动Docker Desktop:

    • 打开Applications文件夹并双击Docker.app以启动Docker Desktop。
    • 第一次启动时,系统可能会提示你允许加载新的系统扩展。如果看到这个提示,打开系统偏好设置,去安全性与隐私中允许加载。
    • 在随后的提示中,你需要输入Mac的用户密码以安装帮助工具。
  3. 确认Docker正在运行:

    • 完成以上步骤后,你可以看到在顶部菜单栏中有一个鲸鱼图标,这表示Docker正在运行。
    • 如果看见一个动画鲸鱼图标表示Docker正在启动,并且在启动完成后会停止动画。
  4. 运行Docker容器来测试安装:

    • 打开Terminal(或你喜欢的终端应用程序)。
    • 输入 docker --version 来验证Docker已经安装。
    • 运行 docker run hello-world 命令来下载测试镜像并在容器内运行,这将验证Docker Daemon是否正确启动并且能够创建容器。
  5. 配置Docker设置(可选):

    • 点击顶部菜单栏中的Docker图标,选择“Preferences”来进行更详细的设置配置,如CPU、内存分配,以及更多选项。
  6. 更新和卸载:

    • Docker Desktop会自动检查更新,你可以在“Preferences”中更新到最新版本。
    • 如果需要卸载Docker Desktop,只需将应用程序拖到垃圾桶即可。这通常会保留容器和镜像数据,如果需要完全移除,可以手动删除相关的数据目录。

安装完成后,你就可以开始使用Docker了。如果你是初学者,可以查看Docker的官方文档以了解如何使用Docker来创建和管理镜像与容器。

4. 在Linux上安装Docker

这里是基于CentOS 7的一个指南,但是大多数步骤对于其他版本的CentOS也是适用的。

首先,请确保你在一个干净的系统上开始这些步骤,且该系统没有安装旧版本的Docker。

  1. 安装必要的软件包

    Docker需要yum-utils这个工具,它提供了yum-config-manager功能,并且需要device-mapper-persistent-datalvm2来支持存储选项。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 设置Docker仓库

    通过以下命令添加Docker的官方仓库到yum源中:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装Docker Engine

    通过yum安装Docker Engine:

sudo yum install docker-ce docker-ce-cli containerd.io

如果有多个Docker仓库被启用,安装或更新时没有指定版本的话,yum会从最高版本的仓库中安装或更新Docker。

  1. 启动Docker服务

    安装完成后,启动Docker服务:

sudo systemctl start docker
  1. 验证Docker安装

    通过运行hello-world镜像来验证是否正确安装了Docker:

sudo docker run hello-world

这个命令将下载一个测试镜像并在容器中运行。如果容器运行成功并且你能在终端看到测试消息,说明Docker安装成功。

  1. 使Docker服务开机自启

    如果你希望Docker在系统启动时自动启动,执行:

sudo systemctl enable docker
  1. (可选)允许非root用户运行Docker命令

    默认情况下,只有root用户和具备sudo权限的用户才能运行Docker命令。如果你希望允许非root用户运行Docker命令,你需要将用户添加到docker组:

sudo usermod -aG docker $USER

替换$USER为你的用户名。添加完毕后,你需要重新启动系统来使得用户组的变更生效。

请注意,这个步骤指南是基于CentOS 7的,如果你使用的是CentOS 8或其他版本,步骤可能会有所不同。还请在进行操作前检查Docker官方文档中CentOS的安装指南,以获得针对特定系统版本的指导。

二、Docker的基础配置

1. Docker配置文件解读

Docker的配置文件通常是一个名为daemon.json的JSON格式文件,该文件位于/etc/docker/目录下。此配置文件允许用户自定义Docker守护进程的行为。

一个基本的daemon.json配置文件的结构如下:

{"debug": true,"log-level": "info","storage-driver": "overlay2","data-root": "/var/lib/docker","exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"},"registry-mirrors": ["https://example-mirror.com"],"insecure-registries": ["http://example-insecure-registry.com:5000"],"no-new-privileges": true
}

详细说明:

  • debug: 设置为true时,Docker将以调试模式运行,这将产生大量的日志输出。对于生产环境,应该设置为false

  • log-level: Docker守护进程的日志级别。有效值为debug, info, warn, error, fatal

  • storage-driver: Docker的存储驱动,如overlay2aufsbtrfsdevicemapper等。overlay2是推荐的存储驱动。

  • data-root: Docker的数据目录,Docker的所有数据将存储在这个位置,默认为/var/lib/docker

  • exec-opts: 这是一个字符串数组,为Docker守护进程提供了一些特定的运行选项。例如,native.cgroupdriver=systemd指定Docker应使用systemd来管理容器的cgroups。

  • log-driver: 指定Docker容器的日志收集驱动,默认为json-file

  • log-opts: 一个包含日志配置的字典。例如,max-size表示日志文件的最大大小,max-file指定日志文件的最大数量。

  • registry-mirrors: 一个Docker拉取镜像时可以使用的镜像仓库镜像列表。这可以加速拉取镜像的速度。

  • insecure-registries: 允许Docker守护进程与指定的不安全仓库通信。这些仓库没有SSL证书或者使用的是自签名证书。

  • no-new-privileges: 设置为true时,阻止Docker容器获得新的权限。这是一个安全特性,有助于限制容器的能力。

请注意,修改daemon.json文件后,需要重新启动Docker服务才能使更改生效。

sudo systemctl daemon-reload
sudo systemctl restart docker

编辑daemon.json时,确保遵循JSON的语法规则,例如使用双引号、确保逗号的正确放置等。如果daemon.json中的语法错误,将导致Docker守护进程无法启动。

此外,还有许多其他的配置选项可以设置,具体的配置选项可以在Docker官方文档中找到。在更改配置时,最好查看Docker的官方文档,以了解每个选项的具体作用和取值范围。

2. 镜像加速器的配置

镜像加速器是用来加速Docker镜像下载的工具。在中国大陆地区,由于网络问题,直接从Docker Hub拉取镜像可能会非常慢,而使用镜像加速器可以显著提升下载速度。

Docker守护进程的配置文件(/etc/docker/daemon.json)允许你设置镜像加速器。以下是一个镜像加速器配置示例:

{"registry-mirrors": ["https://your-mirror-address.mirror.aliyuncs.com"]
}

在配置文件中,registry-mirrors 是一个数组,提供一个或多个加速器地址。在上面的例子中,你需要将 your-mirror-address 替换为实际的加速器地址。这个地址通常由云服务提供商提供,比如阿里云、腾讯云或华为云。

如果你已经知道你的加速器地址,以下是详细的配置步骤:

  1. 打开或创建 Docker 配置文件:
sudo vi /etc/docker/daemon.json
  1. 将上述 JSON 配置复制到文件中,修改 your-mirror-address 为实际的加速器地址。

  2. 保存并关闭文件。

  3. 重新加载 Docker 守护进程的配置:

sudo systemctl daemon-reload
  1. 重启 Docker 服务:
sudo systemctl restart docker

一旦完成,每次使用 docker pull 命令拉取镜像时,Docker 客户端就会自动尝试通过配置的镜像加速器地址来下载。

请注意,镜像加速器的配置和效果可能因服务提供商而异,所以你可能需要根据提供商的说明来调整配置文件中的地址。此外,如果配置了多个镜像加速器,Docker 将按照配置文件中列出的顺序尝试它们。

3. Docker命令行工具的使用

Docker 命令行工具是 Docker 的主要交互界面,它允许用户执行各种与 Docker 容器和镜像相关的操作。以下是一些基本的 Docker 命令及其用法:

1. 处理镜像

  • 拉取镜像 (docker pull)
docker pull ubuntu:latest

这个命令会从 Docker Hub 上拉取最新版本的 Ubuntu 镜像。

  • 列出镜像 (docker images)
docker images

列出本地存储的所有镜像。

  • 构建镜像 (docker build)
docker build -t myapp:latest .

在当前目录下使用 Dockerfile 构建名为 myapp 的镜像,并打上 latest 标签。

  • 删除镜像 (docker rmi)
docker rmi myapp:latest

删除名为 myapp 的镜像及其 latest 标签。

2. 处理容器

  • 创建并启动容器 (docker run)
docker run --name mycontainer -d ubuntu:latest

ubuntu:latest 镜像创建一个名为 mycontainer 的新容器,并在后台运行。

  • 列出容器 (docker ps)
docker ps

列出所有正在运行的容器。使用 -a 参数可以查看所有容器,包括停止的。

  • 停止容器 (docker stop)
docker stop mycontainer

停止名为 mycontainer 的容器。

  • 启动已停止的容器 (docker start)
docker start mycontainer

启动已停止的 mycontainer 容器。

  • 进入容器 (docker exec)
docker exec -it mycontainer bash

进入名为 mycontainer 的运行中的容器,并启动一个 bash 会话。

  • 查看容器日志 (docker logs)
docker logs mycontainer

查看 mycontainer 容器的日志输出。

  • 删除容器 (docker rm)
docker rm mycontainer

删除已停止的名为 mycontainer 的容器。使用 -f 参数可以强制删除正在运行的容器。

3. 网络和卷

  • 列出网络 (docker network ls)
docker network ls

列出所有 Docker 网络。

  • 创建卷 (docker volume create)
docker volume create myvolume

创建一个名为 myvolume 的新卷。

  • 列出卷 (docker volume ls)
docker volume ls

列出所有 Docker 卷。

4. Docker Compose

  • 运行 Docker Compose (docker-compose up)
docker-compose up -d

在后台运行当前目录的 docker-compose.yml 文件,启动所有服务。

  • 停止 Docker Compose (docker-compose down)
docker-compose down

停止并删除由 docker-compose.yml 文件定义的服务。

这些命令只是 Docker 提供的众多命令中的一小部分。要查看所有可用的 Docker 命令及其参数,可以在命令行中输入 docker 或查看 Docker 的官方文档。每个命令通常都有多个参数和选项,可以通过 docker <command> --help 来获得特定命令的帮助信息。例如:

docker run --help

请记得,Docker 需要管理员权限来运行大多数命令,因此你可能需要在命令前加上 sudo,除非你将用户添加到了 docker 组。

三、验证Docker安装

1. 运行你的第一个容器

打开你的命令行工具(例如终端、命令提示符或PowerShell),并输入以下命令:

docker run hello-world

这个命令做了以下几件事:

  • docker 命令调用Docker命令行工具。

  • run 指令告诉Docker守护进程创建并运行一个新的容器。

  • hello-world 指定了要使用的镜像。如果本地没有这个镜像,Docker会从Docker Hub自动拉取它。

输出会显示Docker的安装状态和如何如何运行成功,以及一些关于Docker的额外信息。当容器完成运行后,它会退出,因为运行 hello-world 是一个一次性的命令,没有提供持续服务。

hello-world 开始是因为它是Docker的一个最简单的示例,用于帮助新用户快速理解Docker容器的概念和运行流程。hello-world 镜像是一个非常小的镜像,它的唯一目的就是打印一条消息表示安装成功,并且说明你的Docker安装和运行均正常。这是学习和测试Docker安装的传统方式,同时也是验证Docker能否在你的系统上正常工作的简单方法。

当你运行 hello-world 容器时,Docker客户端会发生以下事情:

  • Docker客户端传递命令:Docker客户端(CLI)将你的命令传递给Docker守护进程(Docker Daemon)。

  • Docker守护进程拉取镜像:Docker守护进程检查本地是否有 hello-world 镜像。如果没有,守护进程会从Docker Hub(默认的远程仓库)拉取镜像。

  • Docker守护进程创建容器:拉取镜像后,Docker守护进程使用这个镜像创建一个新的容器。

  • Docker守护进程运行容器:在新创建的容器内部,Docker守护进程运行一个命令,该命令会导致容器输出 “Hello from Docker!” 消息,并且说明 Docker 安装和运行均正常。

  • Docker守护进程输出结果:Docker守护进程将容器的输出流重定向回Docker客户端,用户可以在终端上看到 hello-world 容器的输出信息。

2. 理解Docker容器运行

容器与镜像的关系

Docker 容器和镜像是 Docker 的两个基本概念,它们之间存在着密切的关系:

  • 镜像(Image):Docker 镜像是一个只读的模板,包含了运行容器所需的代码、运行时、库、环境变量和配置文件。镜像被用来创建 Docker 容器。Docker 通过镜像来运行应用的实例。

  • 容器(Container):容器是镜像的运行实例。当你使用 Docker 镜像运行容器时,Docker 会在镜像的顶层添加一个可写层,所有对容器的更改(比如添加新文件、修改现有文件和删除文件)都会发生在这个层上。一个镜像可以创建多个容器,每个容器都是隔离的、安全的,并且封装了其自身的文件系统和网络。

Docker容器的生命周期管理

容器的生命周期管理包括创建、运行、暂停、停止和删除等状态。以下是容器在其生命周期中常见的几个状态:

  • 创建(Create):建立一个新的容器,但不启动它。

  • 运行(Run):创建容器的同时开始运行它。

  • 暂停(Pause):暂停容器中的所有进程。

  • 停止(Stop):安全地关闭容器。如果容器内有进程在运行,它们会被优雅地停止。

  • 启动(Start):重新启动已经停止的容器。

  • 重启(Restart):停止并立即重新启动容器。

  • 删除(Remove):删除一个已经停止的容器。如果容器正在运行,需要先停止它才能删除。

示例操作

以下是一些示例操作,展示了如何查看和管理 Docker 容器的生命周期:

查看运行中的容器:

docker ps

查看所有容器(包括未运行的):

docker ps -a

停止运行中的容器:

docker stop <容器名或容器ID>

删除容器(需先停止容器):

docker rm <容器名或容器ID>

如果你想要强制删除一个运行中的容器,可以添加 -f--force 选项,但这通常不推荐,因为它可能导致数据丢失:

docker rm -f <容器名或容器ID>

了解和管理 Docker 容器的生命周期对于有效地使用 Docker 非常重要。利用这些命令,你可以有效地控制容器的状态,维护和更新应用程序,并且保持你的环境的整洁。

四、故障排查与社区支持

1. 常见安装问题

  • 网络问题:无法下载Docker镜像
  1. 检查网络连接是否正常。
  ping google.com
  1. 确认Docker守护进程是否正在运行。
 sudo systemctl status docker
  1. 查看是否可以访问 Docker Hub 或你要下载镜像的注册中心。
curl -v https://hub.docker.com
  1. 如果你在公司或学校的网络后面,确认是否需要配置HTTP或HTTPS代理。
配置Docker使用代理:编辑 `/etc/systemd/system/docker.service.d/http-proxy.conf`(对于Linux)并添加代理设置,然后重启Docker服务。
  • 权限问题:非root用户运行Docker命令

    1. 当非root用户尝试运行Docker命令时可能会收到错误消息,表明用户没有权限。
sudo usermod -aG docker ${USER}

添加用户后,你需要重新启动系统以使更改生效。

  1. 这通常是因为Docker守护进程默认以root权限运行,且默认只允许root用户或sudo用户组成员访问Docker守护进程。
grep docker /etc/group

使用 sudo 前缀来运行Docker命令作为临时解决方案,但为了便利性,推荐上面的方法将用户添加到docker组。

2. 相关资源链接

  1. DaoCloud - DaoCloud 提供Docker镜像加速和容器服务,是国内比较知名的Docker服务提供商。
  2. 阿里云容器镜像服务 - 阿里云Docker镜像服务 提供一个稳定、快速的Docker镜像加速器。
  3. 腾讯云容器服务 - 腾讯云容器服务 提供容器镜像仓库以及Kubernetes相关服务。
  4. 网易云容器服务 - 网易云容器服务 同样提供容器服务和镜像加速。
  5. Docker 官方中国镜像 - Docker官方提供的中国镜像站点 https://dockerhub.azk8s.cn 用于加速Docker官方镜像的拉取。

3. 官方社区和技术论坛

  1. Docker中文社区 - Docker中文社区 提供了一个中文用户交流Docker知识的论坛。
  2. SegmentFault Docker话题 - SegmentFault 是一个技术问答网站,其中包含了一个Docker话题标签,适合中文开发者提问和分享Docker相关知识。
  3. 掘金Docker标签 - 掘金 是一个技术文章分享平台,Docker标签聚合了很多中文Docker相关的优质文章。
  4. 知乎Docker话题 - 知乎 上有一个Docker话题,你可以在这里找到许多关于Docker的讨论和文章。
  5. CSDN Docker专栏 - CSDN 上有专门的Docker专栏,汇集了很多Docker相关的技术博文和教程。

总结

希望这篇文章能成为你技术旅程中的一盏明灯,指引你在容器化的大海中乘风破浪。愿你的开发旅程因Docker而更加顺畅,我们期待在容器化的世界里与你共同成长!如有疑问或想要进一步学习,欢迎在公众号下方留言互动,我们将竭诚为你提供帮助。别忘了关注我们,获取更多精彩内容!

相关文章:

『Docker入门指南』- 详细安装与配置教程,助你起航容器化世界!

引言 在探索云计算和自动化部署的时代&#xff0c;Docker以其独特的容器化技术站在了风口浪尖。如果你期待着无缝地将你的应用从一个环境迁移到另一个环境&#xff0c;那么Docker无疑是你的得力助手。但首先&#xff0c;我们得学会如何正确地安装和配置Docker。这篇文章将详细…...

如何提高http连接成功率?

问题 丢包、错包、乱包 高延迟 响应数据回来时间长&#xff0c;甚至大于客户端等待时间 带宽小 每次能够通信的内容较少&#xff0c;数据包越大受影响可能越大 网络断续 网络经常断开又连接 优化处理 采用TCP协议、实现长连接&#xff0c;采用长连接池&#xff0c;节省…...

Elasticsearch 中使用MustNot等同于不等于遇到的坑

1、在写关键词推荐时,需要把当前文章过滤掉,不能再推荐自己的文章,所以再es中需要用到 MustNot属性查询 /// <summary> /// 服务中心es检索 /// </summary> /// <param name="input"></param> /// <returns></…...

嵌入式工程师day15(链表)

内存管理 一.内存管理: 1.malloc void *malloc(size_t size); 功能: 申请堆区空间 参数: size:申请堆区空间的大小 返回值: 返回获得的空间的首地址 失败返回NULL 2.free void free(void *ptr); 功能: 释放…...

Coppeliasim倒立摆demo

首先需要将使用Python远程控制的文件导入到文件夹&#xff0c;核心是深蓝色的三个文件。 本版本为4.70&#xff0c;其文件所在位置如下图所示&#xff0c;需要注意的是&#xff0c;目前不支持Ubuntu22的远程api&#xff1a; 双击Sphere这一行的灰色文件&#xff0c;可以看到远程…...

汽车燃油泵数据分析:全球市场的年复合增长率将达到10%左右

燃油泵是汽车配件行业的专业术语。是电喷汽车燃油喷射系统的基本组成之一&#xff0c;位于车辆油箱内部&#xff0c;燃油泵在启动和发动机运转时工作&#xff0c;如果发动机停止而点火开关仍处于ON时&#xff0c;HFM-SFI控制模块关闭燃油泵的电源&#xff0c;以避免意外点火。 …...

DC-磁盘管理(23国赛真题)

2023全国职业院校技能大赛网络系统管理赛项–模块B:服务部署(WindowServer2022) 文章目录 题目配置步骤组成RAID 5,磁盘分区命名为卷标H盘:Raid5。手动测试破坏一块磁盘,做RAID磁盘修复,确认RAID 5配置完毕。验证查看Raid5(打开磁盘管理器,查看raid信息)Raid5磁盘修复…...

216961-98-7,BODIPY 493/503 NHS 活化酯,可以应用于分子生物学等领域中

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;216961-98-7&#xff0c;BODIPY 493/503 NHS 活化酯&#xff0c;BODIPY 493/503 NHS ester&#xff0c;BODIPY 493/503 SE 一、基本信息 产品简介&#xff1a;BODIPY 493/503 NHS ester是一种特殊的染料&#xff0c…...

Python采集学习笔记-读取excel数据

表格格式 方法一:使用xlrd import xlrd 1.读取Excel文件 workbook xlrd.open_workbook(plc.xlsx) 2.读取第一个表 sheet workbook.sheet_by_index(0) 3.获取表格总行数 total_rows sheet.nrows 4.创建列表,存储表格一行中每一列信息 plc_info [] for row in range(1…...

幻兽帕鲁服务器游戏怎么升级版本?

幻兽帕鲁服务器游戏怎么升级版本&#xff1f;自建幻兽帕鲁服务器进入Palworld游戏提示“您正尝试加入的比赛正在运行不兼容的游戏版本&#xff0c;请尝试升级游戏版本”什么原因&#xff1f;这是由于你的客户端和幻兽帕鲁服务器版本不匹配&#xff0c;如何解决&#xff1f;更新…...

【ASP.NET Core 基础知识】--身份验证和授权--授权和策略

一、授权和策略的概念及应用 在ASP.NET Core中&#xff0c;授权和策略是重要的安全概念&#xff0c;用于确定用户是否有权限执行特定的操作或访问特定的资源。以下是关于ASP.NET Core中授权和策略的概念及其应用的一些重要信息&#xff1a; 1.1 授权&#xff08;Authorizatio…...

20240130在ubuntu20.04.6下卸载NVIDIA显卡的驱动

20240130在ubuntu20.04.6下卸载NVIDIA显卡的驱动 2024/1/30 12:58 缘起&#xff0c;为了在ubuntu20.4.6下使用whisper&#xff0c;以前用的是GTX1080M&#xff0c;装了535的驱动。 现在在PDD拼多多上了入手了一张二手的GTX1080&#xff0c;需要将安装最新的545的驱动程序&#…...

汽车标定技术(十七)--Bypass的前世今生

目录 1.Bypass的诞生 2.Bypass的发扬光大 2.1 基于XCP的Bypassing 2.2 基于Debug的Bypass 2.3 小结 3.Bypass的实际应用 1.Bypass的诞生 下图我相信只要用过INCA的朋友都非常熟悉。 这是远古时期(2000年左右&#xff1f;我猜)ETAS针对发动机控制参数标定设计的一种并行数据…...

【开源精选导航】GitHub-Chinese-Top-Charts:一榜在手,优质中文项目轻松找寻

各位热爱开源技术的朋友们&#xff0c;你们是否有过这样的困扰&#xff1a;面对浩瀚的GitHub海洋&#xff0c;想找寻那些具有高质量中文文档的优秀开源项目却无从下手&#xff1f;今天&#xff0c;我们就为大家揭晓一个宝藏般的开源项目——GitHub 中文项目集合&#xff08;访问…...

C++ 11新特性之语法甜点1

概述 C 11中引入了许多简化编程工作的语法上的新特性&#xff0c;我们暂且美其名曰&#xff1a;“语法甜点”。下面&#xff0c;我们将对这些“语法甜点”一一进行介绍。 语法甜点1&#xff1a;序列for循环 序列for循环是一种简化的for循环&#xff0c;可用于遍历一组序列&…...

【智能家居】6、语音控制及网络控制代码实现

一、语音控制 1、指令结构体编写 这个结构体定义了一个命令输入的模型。在这个模型中&#xff0c;包含以下几个部分&#xff1a; cmdName&#xff1a;一个长度为128的字符串&#xff0c;用于存储命令名称。dvicesName&#xff1a;一个长度为128的字符串&#xff0c;用于存储设…...

Windows断开映射磁盘提示“此网络连接不存在”,并且该磁盘直在资源管理器中

1、打开注册表编辑器 快捷键winR 打开“运行”&#xff0c; 输入 regedit 2、 删除下列注册表中和无法移除的磁盘相关的选项 \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\ 3、打开“任务管理器”&#xff0c;重新启动“Windows资源…...

Java项目要不要部署在Docker里?

部署Java项目有很多种方式&#xff0c;传统的方式是直接在物理机或虚拟机上部署应用&#xff0c;但为什么现在容器化部署变得越来越流行&#xff0c; 个人觉得原因有以下几个&#xff1a; 1、 环境一致性&#xff1a;使用Docker可以确保开发、测试和生产环境的一致性&#xff…...

Linux 入门基础知识(一)—— Linux的基本使用

Linux 入门基础知识 一、Linux的基本使用和配置1.1、终端1.2、消耗内存1.3、运行级别1.6、登录前欢迎语1.5、登录后欢迎语1.6、shell1.7、ps aux1.8、设置主机名1.9、whoami和who am i1.10、命令提示符 二、Linux执行命令的过程详解和命令类型2.1、命令执行2.2、hash缓存表2.3、…...

纯静态微信小程序水果商城

首页代码 <view class"container"><!-- 轮播图 --><view class"swiper-container"><swiper class"screen-swiper" indicator-dots"true" circular"true" autoplay"true" interval"300…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...