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

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.mrgr.cn/news/83007.html

相关文章:

  • 数据库模型全解析:从文档存储到搜索引擎
  • EntityFrameworkCore 投影(Projection)SELECT
  • python中的列表推导式详解
  • MATLAB语言的正则表达式
  • Java深拷贝和浅拷贝
  • 电路学习(一)之电阻
  • Power BI如何连接Azure Databricks数据源?
  • 新华三H3CNE网络工程师认证—常见操作指令总结
  • oracle位运算、左移右移、标签算法等
  • C++ 11,14,17 新特性
  • 入门嵌入式(四)——IICOLED
  • 阿尔法linux开发板ping不通百度
  • STM32之CAN通讯(十一)
  • 总结 Vue 请求接口的各种类型及传参方式
  • halcon三维点云数据处理(八)3D模型匹配相关函数
  • List ---- 模拟实现LIST功能的发现
  • MBTiles 及爬取到发布与数据转换
  • torch.max和torch.softmax python max
  • 【算法】字符串算法技巧系列
  • nginx 配置 本地启动
  • 二、BIO、NIO编程与直接内存、零拷贝
  • ubuntu18升级至ubuntu20
  • 【STM32+CubeMX】 新建一个工程(STM32F407)
  • QT 下拉菜单设置参数 起始端口/结束端口/线程数量 端口扫描4
  • python无需验证码免登录12306抢票 --selenium(2)
  • CODESYS MODBUS TCP通信(禾川Q1 PLC作为MODBUS TCP从站)