docker 常用命令实践DEMO

1.1 docker run -d -p 8080:80 --name web_server nginx 命令的详细解读

  • docker run: 这是 Docker 的一个基本命令,用于从指定的镜像启动一个新的容器。

  • -d: 这个参数是 --detach 的简写,意味着容器将在后台运行。也就是说,命令会立即返回,并且容器会在后台作为一个独立的进程运行。

  • -p 8080:80: 这个参数用于端口映射。它将容器内部的 80 端口映射到宿主机的 8080 端口上。这意味着,当你访问宿主机的 8080 端口时,实际上是在访问容器内部的 80 端口。这对于暴露 Web 服务非常有用,因为你可以通过宿主机的 IP 地址和端口号来访问运行在容器内的 Web 应用。

  • --name web_server: 这个参数用于为容器指定一个名称,这里的名称是 web_server。通过指定名称,你可以更方便地引用和管理容器,而不是使用容器的 ID。

  • nginx: 这是要运行的镜像名称。在这个例子中,Docker 会从 Docker Hub(或你配置的其他镜像仓库)拉取 nginx 镜像(如果本地没有的话),并使用这个镜像来启动一个新的容器。

综上所述,这条命令的作用是在后台启动一个名为 web_server 的容器,该容器运行 nginx 镜像,并将容器内部的 80 端口映射到宿主机的 8080 端口上。这样,你就可以通过访问宿主机的 http://<宿主机IP>:8080 来访问运行在容器内的 nginx 服务了。

1.2 docker run -d --name ubuntu_container ubuntu 命令的详细解读

  • docker run: 这是 Docker 的核心命令之一,用于从指定的镜像启动一个新的容器实例。

  • -d: 这是 --detach 的简写形式,意味着容器将在后台运行,即作为守护进程运行。当你执行这个命令时,它不会阻塞你的终端,而是立即返回,让你能够继续在同一个终端中执行其他命令。容器会在后台运行,直到你手动停止它或它因为某种原因(如崩溃或达到重启策略的限制)而停止。

  • --name ubuntu_container: 这个参数用于为即将启动的容器指定一个名称。在这个例子中,容器的名称被设置为 ubuntu_container。指定容器名称的好处是,你可以通过名称而不是容器 ID 来引用和管理容器,这在处理多个容器时特别有用。

  • ubuntu: 这是要从中创建容器的 Docker 镜像的名称。在这个例子中,Docker 会从 Docker Hub(或你配置的其他镜像仓库)上拉取 ubuntu 镜像(如果本地没有的话),并使用这个镜像来启动一个新的容器。ubuntu 镜像通常包含了一个基本的 Ubuntu 操作系统环境。

综上所述,这条命令的作用是在后台启动一个名为 ubuntu_container 的容器,该容器运行 ubuntu 镜像。容器启动后,你可以在后台运行各种命令和应用程序,但由于没有指定要运行的特定命令(如 -it 参数和 /bin/bash),容器可能会立即进入“已退出”状态,因为它没有要执行的前台进程。如果你希望容器保持运行状态,你需要在 docker run 命令的末尾指定一个前台进程,比如 /bin/bash(用于交互式 shell)或任何你想要容器持续运行的服务。但在这个例子中,由于使用了 -d 参数,即使没有前台进程,容器也会在后台启动。如果你想要检查容器的状态或与之交互,你可以使用 docker ps 来列出所有正在运行的容器,或使用 docker exec 来在已运行的容器中执行命令。

1.3 docker run -it --name ubuntu_bash ubuntu /bin/bash 命令的详细解读

  • docker run: 这是 Docker 的一个基本命令,用于从指定的镜像启动一个新的容器实例。

  • -i, --interactive: 这个参数保持容器的标准输入(STDIN)开放。即使没有附加到容器,也可以通过这种方式与容器进行交互。这在你想要与运行在容器内的程序进行交互时非常有用。

  • -t, --tty: 这个参数分配一个伪终端(pseudo-TTY)或终端。这通常与 -i 参数一起使用,以提供一个交互式 shell。当你想要以命令行界面与容器交互时,这是必需的。

  • --name ubuntu_bash: 这个参数为即将启动的容器指定了一个名称,即 ubuntu_bash。通过指定名称,你可以更容易地引用和管理容器,而不是使用容器的唯一标识符(ID)。

  • ubuntu: 这是要从中创建容器的 Docker 镜像的名称。Docker 会从 Docker Hub(或你配置的其他镜像仓库)上拉取这个镜像(如果本地没有的话),并使用它来启动一个新的容器。

  • /bin/bash: 这是容器启动后要运行的命令。在这个例子中,它启动了一个 Bash shell。由于使用了 -it 参数,这个 shell 会是交互式的,并且你会被带到容器的命令行界面中。

综上所述,这条命令的作用是以交互模式启动一个名为 ubuntu_bash 的容器,该容器运行 ubuntu 镜像,并在容器内启动一个 Bash shell。一旦命令执行,你就会看到一个 Bash 提示符,可以在其中运行命令,就像在一个真实的 Ubuntu 环境中一样。这个环境是隔离的,意味着你在容器内所做的任何更改都不会影响你的宿主机系统。当你完成工作后,可以通过输入 exit 命令来退出 Bash shell,并停止容器(除非你在后台启动了其他进程)。

1.4 docker run -d -e MY_VAR=myvalue --name env_example ubuntu 命令的详细解读

  • docker run: 这是 Docker 的一个基本命令,用于从指定的镜像启动一个新的容器实例。

  • -d, --detach: 这个参数告诉 Docker 在后台运行容器,并打印容器 ID。这意味着容器会在后台运行,你不会直接看到容器的输出或提示符。

  • -e, --env: 这个参数用于设置环境变量。在这个例子中,MY_VAR=myvalue 设置了一个名为 MY_VAR 的环境变量,其值为 myvalue。环境变量可以在容器内运行的程序中使用。

  • --name env_example: 这个参数为即将启动的容器指定了一个名称,即 env_example。通过指定名称,你可以更容易地引用和管理容器,而不是使用容器的唯一标识符(ID)。

  • ubuntu: 这是要从中创建容器的 Docker 镜像的名称。Docker 会从 Docker Hub(或你配置的其他镜像仓库)上拉取这个镜像(如果本地没有的话),并使用它来启动一个新的容器。

由于在这个命令中没有指定要运行的命令(如 /bin/bash),容器会按照镜像的默认命令来运行。对于 ubuntu 镜像,默认命令通常是启动一个 Bash shell,但由于使用了 -d 参数,这个 shell 会在后台运行,并且由于没有附加到容器,所以你不会看到任何输出。

然而,需要注意的是,对于 ubuntu 镜像的默认行为,仅仅启动一个后台的 Bash shell 并没有太多实际意义,因为 Bash shell 在没有输入的情况下不会执行任何操作。在实际应用中,你可能会在 -d 模式下运行一个服务,如 Web 服务器或数据库,这些服务会在后台持续运行并监听特定的端口。

在这个特定的例子中,如果你想要验证环境变量 MY_VAR 是否已设置,你可能需要附加到容器并检查,或者运行一个能够显示环境变量的命令,如 envprintenv。但由于容器是在后台运行的,你需要先找到容器的 ID 或名称,然后使用 docker exec 命令来附加或运行命令。

例如,要查看环境变量,你可以这样做:

docker exec env_example env | grep MY_VAR

或者,如果你想要以交互方式附加到容器并手动检查环境变量,你可以这样做:

docker exec -it env_example /bin/bash

然后在 Bash 提示符下输入 echo $MY_VAR 来查看环境变量的值。不过,请注意,由于 ubuntu 镜像的默认行为,如果容器没有运行任何持续的服务,它可能会在你附加后不久就停止运行(因为 Bash shell 退出了)。在这种情况下,你可能需要修改容器的启动命令或运行一个持续的服务来保持容器运行。

1.5 docker run -d -v /path/on/host:/path/in/container --name volume_example ubuntu 命令的详细解读:

  • docker run: Docker 的基本命令,用于从指定的镜像启动一个新的容器实例。

  • -d, --detach: 这个参数告诉 Docker 在后台运行容器,并打印容器 ID。容器会在后台运行,你不会直接看到容器的输出或提示符。

  • -v, --volume: 这个参数用于挂载一个卷(volume)或绑定挂载(bind mount)一个主机目录到容器内的一个路径。在这个例子中,/path/on/host:/path/in/container 表示将主机上的 /path/on/host 目录挂载到容器内的 /path/in/container 路径。这样,容器内对该路径的读写操作实际上会作用于主机上的对应目录。

    • /path/on/host:这是主机上的目录路径,你希望将其内容共享给容器。
    • /path/in/container:这是容器内的路径,你将能够访问主机上 /path/on/host 目录的内容。
  • --name volume_example: 这个参数为即将启动的容器指定了一个名称,即 volume_example。通过指定名称,你可以更容易地引用和管理容器。

  • ubuntu: 这是要从中创建容器的 Docker 镜像的名称。Docker 会从 Docker Hub(或你配置的其他镜像仓库)上拉取这个镜像(如果本地没有的话),并使用它来启动一个新的容器。

当改变主机卷的内容时,容器内的相应挂载点会立即发生变化。这是因为 Docker 的卷挂载机制允许主机和容器之间共享文件系统的一部分。当你将主机的目录挂载到容器内的一个路径时,容器对该路径的访问实际上是对主机目录的访问。

具体来说,当你使用 -v--volume 参数将主机的目录挂载到容器内时,Docker 会在容器启动时创建一个到主机目录的绑定。这意味着,容器内对该挂载点的任何读写操作都会直接反映在主机目录上,反之亦然。

因此,如果你在主机上修改了挂载目录的内容(如添加、删除或修改文件),这些变化会立即在容器内的对应挂载点上可见。同样地,如果你在容器内对挂载点进行了修改,这些变化也会立即反映在主机目录上。

这种机制使得 Docker 卷成为在容器和主机之间共享数据的一种非常有效的方式。它允许你在容器外部管理和备份数据,同时仍然能够在容器内部访问和使用这些数据。

需要注意的是,虽然卷挂载提供了主机和容器之间的数据共享,但它并不影响容器的镜像。镜像中的文件和数据是静态的,而卷挂载允许你在运行时动态地修改数据。因此,卷挂载是 Docker 中管理容器数据的一种非常灵活和强大的方式。

1.6 docker ps 命令的解释

  • 基本功能:列出当前正在运行的容器。
选项
  • -a, --all

    • 功能:列出所有容器(包括正在运行的和已经停止的)。
    • 解释:这个选项会扩展输出,以包括所有容器,而不仅仅是当前正在运行的那些。
  • -n=<number>, --last=<number>

    • 功能:显示最近创建的指定数量的容器。
    • 解释? 应该被替换为具体的数字,表示你想要显示的最近创建的容器数量。例如,docker ps -n=5 会显示最近创建的5个容器。
  • -q, --quiet

    • 功能:只显示容器的编号(ID)。
    • 解释:这个选项会抑制其他所有输出,只显示每个容器的唯一标识符(通常是一个长字符串)。
示例
  • docker ps:列出当前正在运行的容器。
  • docker ps -a:列出所有容器,包括已经停止的。
  • docker ps -n=3:显示最近创建的3个容器。
  • docker ps -q:只显示所有正在运行的容器的编号。
  • docker ps -aq:结合使用 -a-q,列出所有容器的编号(无论是否正在运行)。

1.7 docker rm <容器ID>

  • 功能:删除指定的容器。
  • 限制:该命令只能删除已经停止运行的容器。如果尝试删除一个正在运行的容器,Docker 会报错。
  • 强制删除:如果确实需要删除一个正在运行的容器,可以使用 -f--force 选项来强制删除。但请注意,强制删除容器可能会导致数据丢失,因为容器内的进程将不会得到正常终止的机会。
docker rm -f <容器ID>docker rm --force <容器ID>
  • 功能:强制删除指定的容器,无论它是否正在运行。
docker rm -f $(docker ps -aq)
  • 功能:删除所有容器。
  • 解释
    • docker ps -aq:列出所有容器的ID,无论它们是否正在运行。
    • $(...):命令替换,将括号内的命令输出作为外部命令的参数。
    • docker rm -f:强制删除指定的容器。
  • 组合效果:这个命令会删除所有列出的容器ID,即删除所有容器。
docker ps -aq | xargs docker rm
  • 功能:也是删除所有容器。
  • 解释
    • docker ps -aq:同样列出所有容器的ID。
    • |:管道符号,将前一个命令的输出作为后一个命令的输入。
    • xargs:构建并执行命令行,将输入数据(这里是容器ID列表)作为参数传递给 docker rm 命令。
  • 组合效果:与上一个命令相同,这个命令也会删除所有容器。
注意事项
  • 在执行删除所有容器的命令之前,请确保您真的想要删除它们,因为这会永久移除容器及其数据(除非数据被挂载在外部卷上)。
  • 如果您的 Docker 环境中包含重要数据或正在运行的服务,请谨慎使用这些命令。

1.8 启动、重启、停止和强制停止容器的详细解释

docker start <容器ID>
  • 功能:启动一个已经创建但当前未运行的容器。
  • 使用场景:当您想要运行一个之前已经停止或从未运行过的容器时,可以使用此命令。
docker restart <容器ID>
  • 功能:先停止再启动指定的容器。
  • 使用场景:当容器出现问题或您需要刷新其状态时,可以使用此命令。它相当于先执行 docker stop <容器ID>,然后立即执行 docker start <容器ID>
docker stop <容器ID>
  • 功能:优雅地停止一个正在运行的容器。
  • 解释:Docker 会向容器发送一个 SIGTERM 信号,允许容器内的进程有机会进行清理操作并正常退出。如果进程在一定时间内没有响应,Docker 将强制停止容器。
  • 使用场景:当您想要停止一个正在运行的容器时,可以使用此命令。
docker kill <容器ID>
  • 功能:强制停止一个正在运行的容器。
  • 解释:与 docker stop 不同,docker kill 会立即向容器发送一个 SIGKILL 信号,强制终止容器内的所有进程,而不给它们任何清理的机会。
  • 使用场景:当 docker stop 命令无法停止容器,或者您需要立即终止容器时,可以使用此命令。

请注意,在使用 docker kill 命令之前,最好先尝试使用 docker stop 命令,因为它允许容器内的进程进行正常的清理操作。只有在必要的情况下才应使用 docker kill 命令。

1.9 要从 Docker 容器内部拷贝文件到主机上,你可以使用 docker cp 命令。这个命令允许你在容器和主机之间复制文件和目录。

以下是 docker cp 命令的基本语法和用法示例:

语法
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
  • CONTAINER 是容器的名称或 ID。
  • SRC_PATH 是源路径,可以是容器内的路径或主机上的路径。
  • DEST_PATH 是目标路径,可以是主机上的路径或容器内的路径。
从容器内拷贝到主机上

要将文件或目录从容器内拷贝到主机上,你需要指定容器内的源路径和主机上的目标路径。例如:

docker cp 容器ID或名称:/容器内/路径/到/文件或目录 /主机上/的目标/路径
示例

假设你有一个名为 my_container 的容器,并且你想要将容器内的 /app/data.txt 文件拷贝到主机的 /home/user/data.txt 路径下,你可以使用以下命令:

docker cp my_container:/app/data.txt /home/user/data.txt

如果你想要拷贝整个目录,比如将容器内的 /app 目录拷贝到主机的 /home/user/app_backup 目录下,你可以这样做:

docker cp my_container:/app /home/user/app_backup

请注意,目标路径在主机上必须存在,或者你有权限创建它。如果目标路径已经存在并且是一个文件,而你想要拷贝的是一个目录,那么操作会失败。同样地,如果目标路径是一个目录,但你想要拷贝的是一个文件,并且该目录下已经存在一个同名文件,那么该文件将被覆盖。

使用 docker cp 命令时,请确保容器正在运行,因为你需要访问容器内的文件系统。如果容器已经停止,你可能需要先启动它,或者从容器的卷或备份中恢复数据。

1.10 docker run -it -v /home/ceshi:/home centos /bin/bash 包含了一些特定的选项和参数,下面是对这些组件的详细解读

docker run
  • 功能:创建并启动一个新的容器。
-it
  • 这是两个选项的组合:-i-t
  • -i--interactive:保持容器的标准输入(STDIN)开放,即使没有附加到容器。
  • -t--tty:分配一个伪终端(pseudo-TTY)或终端,这通常与 -i 一起使用,以便与容器进行交互。
-v /home/ceshi:/home
  • -v--volume:创建一个卷挂载点。
  • /home/ceshi:/home:指定了源路径和目标路径。这里,主机的 /home/ceshi 目录被挂载到容器的 /home 目录。
    • /home/ceshi 是主机上的路径。
    • /home 是容器内的路径。
  • 这意味着,对容器内 /home 目录的任何读写操作都会反映到主机的 /home/ceshi 目录上,反之亦然。
centos
  • 功能:指定要运行的镜像名称。在这个例子中,它指的是 Docker Hub 上的官方 CentOS 镜像。
/bin/bash
  • 功能:容器启动后要执行的命令。
  • 在这个例子中,容器启动后将运行 Bash shell,允许用户与容器进行交互。
综合解读

综上所述,docker run -it -v /home/ceshi:/home centos /bin/bash 命令的功能是:

  1. 使用 CentOS 镜像创建一个新容器。
  2. 分配一个伪终端,并保持标准输入开放,以便与容器进行交互。
  3. 将主机的 /home/ceshi 目录挂载到容器的 /home 目录。
  4. 在容器内启动 Bash shell。

执行此命令后,用户将能够在一个交互式的 Bash 会话中操作容器,同时容器的 /home 目录将与主机的 /home/ceshi 目录同步。

1.11 启动了一个名为mysql01的MySQL 5.7容器,该容器的MySQL服务可以通过宿主机的3310端口访问,root用户的密码设置为123456,并且容器的配置文件和数据分别被挂载到了宿主机的/home/mysql/conf和/home/mysql/data目录下

docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

这条命令是用于在Docker中运行一个MySQL 5.7容器的。下面是对这个命令的详细解释:

  • docker run: 这是Docker的一个命令,用于运行一个新的容器实例。

  • -d: 这个参数指定容器在后台运行(detached mode)。这意味着命令会立即返回,而容器会在后台继续运行。

  • -p 3310:3306: 这个参数将容器内部的3306端口映射到宿主机的3310端口。MySQL的默认端口是3306,这里通过端口映射,使得你可以通过宿主机的3310端口访问容器内的MySQL服务。

  • -v /home/mysql/conf:/etc/mysql/conf.d: 这个参数挂载了一个卷(volume),将宿主机的/home/mysql/conf目录映射到容器内的/etc/mysql/conf.d目录。这通常用于放置自定义的MySQL配置文件。

  • -v /home/mysql/data:/var/lib/mysql: 类似于上面的参数,这个参数将宿主机的/home/mysql/data目录映射到容器内的/var/lib/mysql目录。MySQL的数据(如数据库和表)存储在这个目录下,因此通过挂载这个目录,可以持久化MySQL的数据,即使容器被删除,数据也不会丢失。

  • -e MYSQL_ROOT_PASSWORD=123456: 这个参数设置了环境变量MYSQL_ROOT_PASSWORD的值为123456。在MySQL容器中,这个环境变量用于设置root用户的密码。

  • --name mysql01: 这个参数为容器指定了一个名字mysql01,方便以后通过名字来引用或管理容器,而不是使用容器的ID。

  • mysql:5.7: 这指定了要运行的镜像的名称和标签。这里使用的是mysql镜像的5.7版本。Docker会从Docker Hub(一个镜像仓库)下载这个镜像(如果本地没有的话),并使用它来启动容器。

综上所述,这条命令启动了一个名为mysql01的MySQL 5.7容器,该容器的MySQL服务可以通过宿主机的3310端口访问,root用户的密码设置为123456,并且容器的配置文件和数据分别被挂载到了宿主机的/home/mysql/conf/home/mysql/data目录下。

1.12 docker build -f /home/docker-test-volume/dockerfile1 -t kuangshen/centos:1.0 .

这条命令是在使用 Docker 来构建一个新的镜像。下面是对这个命令各部分的解释:

  • docker build:这是 Docker CLI 中用于构建 Docker 镜像的命令。

  • -f /home/docker-test-volume/dockerfile1-f--file 选项后面跟的是 Dockerfile 的路径。在这个例子中,Dockerfile 位于 /home/docker-test-volume/ 目录下,文件名为 dockerfile1。Dockerfile 是一个文本文件,包含了一系列指令,这些指令定义了镜像的内容。

  • -t kuangshen/centos:1.0-t--tag 选项用于给构建的镜像指定一个标签(tag),格式通常是 <仓库名>/<镜像名>:<标签>。在这个例子中,仓库名是 kuangshen,镜像名是 centos,标签是 1.0。这意味着构建完成后,镜像将被命名为 kuangshen/centos:1.0

  • .:这个点表示 Dockerfile 所在的上下文路径。在构建镜像时,Docker 会将上下文路径下的所有文件和目录发送到 Docker daemon。虽然在这个命令中直接指定了 Dockerfile 的路径,但上下文路径仍然需要指定,用于可能包含在 Dockerfile 中的 COPYADD 指令所需的文件。在这个例子中,. 表示当前目录是上下文路径,但因为已经通过 -f 选项明确指定了 Dockerfile 的路径,所以上下文路径主要用于查找 Dockerfile 中引用的其他文件。

综上所述,这条命令的意思是:使用位于 /home/docker-test-volume/dockerfile1 的 Dockerfile 来构建一个名为 kuangshen/centos:1.0 的 Docker 镜像,其中 . 表示当前目录作为构建上下文。

1.13 docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7

这条 docker run 命令用于在 Docker 中启动一个新的 MySQL 5.7 容器实例,同时配置了一些特定的参数。下面是对这条命令的详细解释:

  • docker run: Docker CLI 的一个命令,用于运行一个新的容器实例。

  • -d: 指定容器在后台运行(detached mode)。

  • -p 3307:3306: 将容器内部的 3306 端口映射到宿主机的 3307 端口。这意味着你可以通过宿主机的 3307 端口来访问容器内的 MySQL 服务。

  • -e MYSQL_ROOT_PASSWORD=123456: 设置环境变量 MYSQL_ROOT_PASSWORD 的值为 123456。在 MySQL 容器中,这个环境变量用于设置 root 用户的密码。

  • --name mysql02: 为容器指定一个名字 mysql02,方便以后通过名字来引用或管理容器。

  • --volumes-from mysql01: 这个参数指定新启动的容器 mysql02 将从已经存在的容器 mysql01 那里挂载所有的卷(volumes)。这意味着 mysql02 可以访问 mysql01 容器中定义的所有卷的数据。这通常用于数据共享或数据迁移的场景。

  • mysql:5.7: 指定要运行的镜像的名称和标签。这里使用的是 mysql 镜像的 5.7 版本。

综上所述,这条命令的作用是:在后台启动一个名为 mysql02 的 MySQL 5.7 容器,将其内部的 3306 端口映射到宿主机的 3307 端口,设置 root 用户的密码为 123456,并从名为 mysql01 的容器中挂载所有卷。

需要注意的是,--volumes-from 参数依赖于 mysql01 容器的存在,并且 mysql01 容器中应该已经定义了一些卷(虽然在您提供的命令中并没有显示 mysql01 容器的创建过程,但我们假设它之前已经被创建并定义了一些卷)。此外,由于 MySQL 数据通常存储在 /var/lib/mysql 目录下,如果 mysql01 容器也是 MySQL 容器,并且您希望 mysql02 容器能够访问相同的数据集,那么您应该确保 mysql01 容器的 /var/lib/mysql 目录被定义为一个卷。

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

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

相关文章

数据分析思维(九):分析方法——AARRR模型分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python&#xff0c;更重要的是数据分析思维。没有数据分析思维和业务知识&#xff0c;就算拿到一堆数据&#xff0c;也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》&#xff0c;本文内容就是提取…

【计算机网络】课程 实验四 配置快速生成树协议(RSTP)

实验四 配置快速生成树协议&#xff08;RSTP&#xff09; 一、实验目的 1&#xff0e;理解快速生成树协议RSTP的工作原理。 2&#xff0e;掌握如何在交换机上配置快速生成树。 二、实验分析与设计 【背景描述】 某学校为了开展计算机教学和网络办公&#xff0c;建立了一个计…

Tauri教程-基础篇-第一节 Tauri项目创建及结构说明

“如果结果不如你所愿&#xff0c;就在尘埃落定前奋力一搏。”——《夏目友人帐》 “有些事不是看到了希望才去坚持&#xff0c;而是因为坚持才会看到希望。”——《十宗罪》 “维持现状意味着空耗你的努力和生命。”——纪伯伦 Tauri 技术教程 * 第四章 Tauri的基础教程 第一节…

pyinstaller冻结打包多进程程序的bug:无限创建进程直至系统崩溃

前面写过两篇相关的文章&#xff1a; PyQt应用程序打包Python自动按键 这两篇文章都没有提到下面的这个重要问题&#xff1a; 采用Pyinstaller冻结打包多进程程序时&#xff0c;必须非常小心。这个技术线在Windows上会有一个非常严重的Bug。直接运行打包后的程序会造成无限创…

网络安全-kail linux 网络配置(基础篇)

一、网络配置 1.查看网络IP地址&#xff0c; 我的kail&#xff1a;192.168.15.128 使用ifconfig查看kail网络连接情况&#xff0c;ip地址情况 又复制了一台kail计算机的IP地址。 再看一下windows本机&#xff1a;使用ipconfig进行查看&#xff1a; 再看一下虚拟机上的win7I…

uni app 写的 小游戏,文字拼图?文字拼写?不知道叫啥

从下方的偏旁部首中选在1--3个组成上面文章中的文字&#xff0c;完成的文字标红 不喜勿喷 《满江红》 其中用到了两个文件 strdata.json parameters.json 这两个文件太大 放到资源中了 资源文件 <template><view class"wenzi_page_main"><view c…

分享几个高清无水印国外视频素材网站

在数字内容创作日益盛行的今天&#xff0c;高质量的视频素材成为了视频制作、广告创意和多媒体项目中不可或缺的元素。对于追求专业水准的创作者而言&#xff0c;高清、无水印的视频素材是确保作品质量的基石。以下将分享几个优质的视频素材网站&#xff0c;为您的创作之路提供…

【LLM】大语言模型基础知识及主要类别架构

文章目录 LLM大语言模型1.LLM基础知识1.1大模型介绍:1.2语言模型1.21n-gram语言模型1.22神经网络语言模型1.23基于Transformer的预训练语言模型1.24大语言模型 1.3模型评估指标1.31 BLEU1.32 Rouge指标1.33 困惑度PPL 2.LLM主要类别架构2.1 自编码模型2.2 自回归模型2.3 Encode…

剖析 Claim-Check 模式:以小传大,赋能分布式系统与微服务

1. 前言 1.1 写作背景与目的 在当今分布式系统与微服务架构盛行的时代&#xff0c;服务间的消息传递与数据交换越来越频繁。传统的消息传输在面对海量数据时&#xff0c;往往会遇到以下痛点&#xff1a; 消息体过大&#xff1a;直接通过消息队列或服务间接口发送大体量数据&…

【Uniapp-Vue3】v-if条件渲染及v-show的选择对比

如果我们想让元素根据响应式变量的值进行显示或隐藏可以使用v-if或v-show 一、v-show 另一种控制显示的方法就是使用v-show&#xff0c;使用方法和v-if一样&#xff0c;为true显示&#xff0c;为false则不显示。 二、v-if v-if除了可以像v-show一样单独使用外&#xff0c;还…

JVM实战—OOM的定位和解决

1.如何对系统的OOM异常进行监控和报警 (1)最佳的解决方案 最佳的OOM监控方案就是&#xff1a;建立一套监控平台&#xff0c;比如搭建Zabbix、Open-Falcon之类的监控平台。如果有监控平台&#xff0c;就可以接入系统异常的监控和报警&#xff0c;可以设置当系统出现OOM异常&…

Idea(中文版) 项目结构/基本设置/设计背景

目录 1. Idea 项目结构 1.1 新建项目 1.2 新建项目的模块 1.3 新建项目模块的包 1.4 新建项目模块包的类 2. 基本设置 2.1 设置主题 2.2 设置字体 2.3 设置注释 2.4 自动导包 2.5 忽略大小写 2.6 设置背景图片 3. 项目与模块操作 3.1 修改类名 3.2 关闭项目 1. I…

liunx 中编写 springboot 服务停止时定时检查重启脚本

当服务内存溢出或其他一些原因&#xff0c;导致程序停止运行&#xff0c;服务不可用&#xff0c;为了服务能够及时自动重启&#xff0c;记录一下操作过程&#xff01; 首先编写自动重启的脚本指令&#xff0c;脚本在服务器上编写的&#xff0c;最后不要写好txt文件&#xff0c;…

CV-LLM经典论文解读|VTimeLLM: Empower LLM to Grasp Video MomentsVTimeLLM:赋能大语言模型理解视频片段

论文标题 VTimeLLM: Empower LLM to Grasp Video Moments VTimeLLM&#xff1a;赋能大语言模型理解视频片段 论文链接&#xff1a; VTimeLLM: Empower LLM to Grasp Video Moments论文下载 论文作者 Bin Huang, Xin Wang, Hong Chen, Zihan Song, Wenwu Zhu (Tsinghua Un…

wujie无界微前端框架初使用

先说一下项目需求&#xff1a;将单独的四套系统的登录操作统一放在一个入口页面进行登录&#xff0c;所有系统都使用的是vue3&#xff0c;&#xff08;不要问我为啥会这样设计&#xff0c;产品说的客户要求&#xff09; 1.主系统下载wujie 我全套都是vue3&#xff0c;所以直接…

ceph文件系统

ceph文件系统&#xff1a;高度可扩展&#xff0c;分布式的存储文件系统&#xff0c;旨在提高性能&#xff0c;高可靠性和高可用的对 象存储&#xff0c;块存储&#xff0c;文件系统的存储。使用分布式的算法保证数据的高可用和一致性。 ceph的组件 1、MON&#xff1a;ceph m…

Django的runserver

当年执行 python manage runserver命令时 1. 先执行 runserver 中的 handle方法 2. 执行 self.run()方法 3. 执行 self.inner_run() 3.1 inner_run 下 run方法的封装 3.1.1 接着看 handle 怎么来的 封装了一个方法 接着找返回函数 3.1.2在 basehttp 下 3.1.3 get_wsgi_appl…

开源AI智能名片2+1链动模式S2B2C商城小程序在商业流量获取中的应用研究

摘要&#xff1a; 随着互联网技术的迅猛发展&#xff0c;商业流量的获取已成为企业市场竞争中的关键环节。传统意义上的“客流量”在互联网语境下被赋予了新的内涵&#xff0c;即“商业流量”&#xff0c;其本质依然指向用户。在当前线上线下融合的商业环境中&#xff0c;流量…

(leetcode算法题)76. 最小覆盖子串

以s "ADOBECODEBANC", t "ABC"为例&#xff0c;进行如下演示 对于上图的说明&#xff1a; 1. 上面八个状态是在从左往右滑动窗口时&#xff0c;每发现一个窗口满足以下条件就进行状态暂停 条件&#xff1a;s[l, r] 覆盖了 t 这个字符串 2. 只有出窗口之…

2025-01-07 Unity 使用 Tip3 —— 游戏保存数据到 Application.persistentDataPath 不生效解决方案更新

文章目录 1 问题描述2 老版解决方案&#xff08;测试可行&#xff09;2.1 创建 js 脚本2.2 添加 js 引用 3 新版解决方案&#xff08;测试不可行&#xff09;4 实际问题 ​ WebGL 平台限制了文件访问系统&#xff0c;在 Unity 以前版本中&#xff0c;开发者想要在 WebGL 上保存…