Ubuntu 22.04 Docker安装笔记

news2024/9/20 9:25:45

1、准备一台虚机

可以根据《VMware Workstation安装Ubuntu 22.04笔记》来准备虚拟机。完成后,根据需求安装必要的软件,并设置root权限进行登录。

sudo apt update
sudo apt install iputils-ping -y
sudo apt install vim -y

允许root ssh登录:
sudo passwd root
sudo vi /etc/ssh/sshd_config
...
#PermitRootLogin prohibit-password
PermitRootLogin yes <--新增配置
...
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
sudo service ssh restart

其他相关信息:

root@host1:~# hostname
host1

root@host1:~# uname -a
Linux host1 5.15.0-117-generic #127-Ubuntu SMP Fri Jul 5 20:13:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
root@host1:~# cat /etc/*release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.4 LTS"
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
root@host1:~# 

root@host1:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:ba:cd:1a brd ff:ff:ff:ff:ff:ff
    altname enp2s0
    inet 10.0.20.61/24 brd 10.0.20.255 scope global ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feba:cd1a/64 scope link 
       valid_lft forever preferred_lft forever
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:ba:cd:24 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet6 fe80::20c:29ff:feba:cd24/64 scope link 
       valid_lft forever preferred_lft forever


2、Docker安装

Docker是一个开源的软件平台,它允许你通过容器化技术来构建、测试和运行应用程序。容器化是一种轻量级、可移植的、自给自足的软件运行方式,它使得应用程序及其依赖项可以被打包在一起,从而简化了软件的部署和管理。

Docker为Ubuntu提供了一个官方的APT仓库,这使得在Ubuntu系统上安装Docker变得非常简单。以下是在Ubuntu 22.04上安装Docker的步骤:

1. 更新包索引

更新本地包索引以确保安装的是最新版本的软件包。

root@host1:~# apt update

2. 安装所需的软件包

root@host1:~# apt install -y apt-transport-https ca-certificates curl software-properties-common  
  • apt-transport-https: 这个软件包提供了通过 HTTPS 协议获取软件包的能力。
  • ca-certificates: 包含用于验证 HTTPS 连接的证书。
  • curl: 是一个命令行工具和库,用于传输数据,支持多种协议,包括 HTTP、HTTPS 和 FTP。
  • software-properties-common: 包含用于添加和管理软件源的工具。

3. 添加 Docker 的官方 GPG 密钥到 Ubuntu 系统

root@host1:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

root@host1:~# ls /usr/share/keyrings/docker-archive-keyring.gpg 
/usr/share/keyrings/docker-archive-keyring.gpg
root@host1:~# 
  • curl: 是一个命令行工具,用于从或向服务器传输数据。
  • -fsSL: 选项组合:
    • -f 或 -fail:服务器返回失败的HTTP状态码时不显示错误。
    • -s 或 --silent:静默或无输出模式。
    • -S 或 --show-error:在出现问题时显示错误。
    • -L 或 --location:跟随重定向。
  • https://download.docker.com/linux/ubuntu/gpg: 是 Docker 官方的 GPG 密钥的 URL。
  • |: 是管道操作符,将前一个命令的输出作为后一个命令的输入。
  • sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg: 这个命令使用 gpg 工具将通过管道接收到的密钥转换为二进制格式,并将其输出到指定的文件路径。

 4. 将 Docker 的官方软件源添加到 Ubuntu 的 APT 软件源列表中

root@host1:~# echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

执行这个命令后,Docker 的官方软件源将被添加到您的系统软件源列表中,APT 将能够从这个源安装 Docker。

5. 在 Ubuntu 系统中安装 Docker CE(社区版)及其命令行接口(CLI)和 containerd.io 容器运行时:

root@host1:~# apt update
root@host1:~# apt install -y docker-ce docker-ce-cli containerd.io

6. 设置 Docker 服务在系统启动时自动启动

root@host1:~# systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
root@host1:~#

7. 显示当前安装的 Docker 版本信息

root@host1:~# docker --version
Docker version 27.1.1, build 6312585

root@host1:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2024-08-06 02:27:10 UTC; 2min 49s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 2050 (dockerd)
      Tasks: 10
     Memory: 22.0M
        CPU: 321ms
     CGroup: /system.slice/docker.service
             └─2050 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Aug 06 02:27:09 host1 systemd[1]: Starting Docker Application Container Engine...
Aug 06 02:27:09 host1 dockerd[2050]: time="2024-08-06T02:27:09.804576515Z" level=info msg="Starting up"
Aug 06 02:27:09 host1 dockerd[2050]: time="2024-08-06T02:27:09.805423605Z" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf"
Aug 06 02:27:09 host1 dockerd[2050]: time="2024-08-06T02:27:09.886376001Z" level=info msg="Loading containers: start."
Aug 06 02:27:10 host1 dockerd[2050]: time="2024-08-06T02:27:10.259919206Z" level=info msg="Loading containers: done."
Aug 06 02:27:10 host1 dockerd[2050]: time="2024-08-06T02:27:10.278184800Z" level=info msg="Docker daemon" commit=cc13f95 containerd-snapshotter=false storage-driver=overlay2 version=27.1.1
Aug 06 02:27:10 host1 dockerd[2050]: time="2024-08-06T02:27:10.278390653Z" level=info msg="Daemon has completed initialization"
Aug 06 02:27:10 host1 dockerd[2050]: time="2024-08-06T02:27:10.319697168Z" level=info msg="API listen on /run/docker.sock"
Aug 06 02:27:10 host1 systemd[1]: Started Docker Application Container Engine.
root@host1:~# 

8. 测试 Docker 是否正确安装

root@host1:~# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete 
Digest: sha256:1408fec50309afee38f3535383f5b09419e6dc0925bc69891e79d84cc4cdcec6
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

root@host1:~# 

3、Docker使用

3.1 docker pull 下载镜像

1、从Docker Hub(Docker的官方镜像仓库)下载标签为 22.04 的Ubuntu镜像:

root@host1:~# docker pull ubuntu:22.04
22.04: Pulling from library/ubuntu
3713021b0277: Pull complete 
Digest: sha256:340d9b015b194dc6e2a13938944e0d016e57b9679963fdeb9ce021daac430221
Status: Downloaded newer image for ubuntu:22.04
docker.io/library/ubuntu:22.04

2、列出本地的Docker镜像:

root@host1:~# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
ubuntu        22.04     8a3cdc4d1ad3   5 weeks ago     77.9MB
hello-world   latest    d2c94e258dcb   15 months ago   13.3kB

3.2 docker run 启动容器

在Docker中创建并启动一个名为 test1 的新容器,使用 ubuntu:22.04 镜像,并提供一个交互式的bash shell:

root@host1:~# docker run --name test1 -it ubuntu:22.04 /bin/bash
root@33d9582b76bf:/# exit
exit
root@host1:~# 
 

-it:这是一个组合选项,-i 表示交互式,-t 表示分配一个伪终端。这个选项允许你与容器内的进程进行交互

/bin/bash:这是容器启动后要运行的命令,即启动bash shell

执行这个命令后,Docker会做以下几件事:

  1. 检查本地是否有 ubuntu:22.04 镜像,如果没有,它会从Docker Hub下载这个镜像。
  2. 使用这个镜像创建一个新的容器,命名为 test1
  3. 启动容器,并提供一个交互式的bash shell,允许你执行命令和操作。
  4. 要退出终端,直接输入 exit。

启动容器,同时后台运行:

root@host1:~# docker run --name test2 -itd ubuntu:22.04 /bin/bash
13406586d37f4dceadf75d49643d401cbc806d81e48a085f54969e279ab593ee

3.3 docker ps 列出容器

列出所有容器,包括正在运行的和已经停止的容器:

root@host1:~# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED              STATUS                       PORTS     NAMES
13406586d37f   ubuntu:22.04   "/bin/bash"   About a minute ago   Up About a minute                      test2
33d9582b76bf   ubuntu:22.04   "/bin/bash"   23 minutes ago       Exited (137) 4 seconds ago             test1
6843deb526c2   hello-world    "/hello"      11 hours ago         Exited (0) 11 hours ago                great_booth
root@host1:~# 

 只列出正在运行的容器:

root@host1:~# docker ps 
CONTAINER ID   IMAGE          COMMAND       CREATED              STATUS              PORTS     NAMES
13406586d37f   ubuntu:22.04   "/bin/bash"   About a minute ago   Up About a minute             test2
root@host1:~# 

3.4 docker start启动已经停止的容器

root@host1:~# docker start test1
test1
root@host1:~# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS         PORTS     NAMES
13406586d37f   ubuntu:22.04   "/bin/bash"   2 minutes ago    Up 2 minutes             test2
33d9582b76bf   ubuntu:22.04   "/bin/bash"   24 minutes ago   Up 4 seconds             test1
root@host1:~# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS                    PORTS     NAMES
13406586d37f   ubuntu:22.04   "/bin/bash"   2 minutes ago    Up 2 minutes                        test2
33d9582b76bf   ubuntu:22.04   "/bin/bash"   24 minutes ago   Up 8 seconds                        test1
6843deb526c2   hello-world    "/hello"      11 hours ago     Exited (0) 11 hours ago             great_booth
root@host1:~#

 3.5 docker stop 停止容器

root@host1:~# docker stop test1
test1

3.6 docker restart 重启容器

root@host1:~# docker restart test1
test1
root@host1:~# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS         PORTS     NAMES
13406586d37f   ubuntu:22.04   "/bin/bash"   8 minutes ago    Up 8 minutes             test2
33d9582b76bf   ubuntu:22.04   "/bin/bash"   30 minutes ago   Up 4 seconds             test1
root@host1:~#

 docker start和docker restart区别:

  • docker start 仅用于启动已经停止的容器,不会重新初始化容器的启动命令。
  • docker restart 可以用于重启正在运行的容器,或者重新启动已经停止的容器,并且会重新执行容器的启动命令。

使用场景:

  • 如果你需要重新激活一个已经停止的容器,并且希望它从停止时的状态继续运行,使用 docker start
  • 如果你需要重置容器的状态,或者容器需要在重启时重新加载配置或执行初始化命令,使用 docker restart

 3.7 docker attach进入容器

docker run -itd方式,启动容器会进入后台;或者docker start/restart,重新启动的容器也会进入后台。此时,要进入容器,可以使用docker attach,执行exit退出容器:

root@host1:~# docker attach test1
root@33d9582b76bf:/# 
root@33d9582b76bf:/# exit
exit
root@host1:~# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
13406586d37f   ubuntu:22.04   "/bin/bash"   13 minutes ago   Up 13 minutes             test2
root@host1:~#  

3.8 docker exec进入容器

root@host1:~# docker start test1
test1
root@host1:~# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
13406586d37f   ubuntu:22.04   "/bin/bash"   20 minutes ago   Up 20 minutes             test2
33d9582b76bf   ubuntu:22.04   "/bin/bash"   42 minutes ago   Up 3 seconds              test1
root@host1:~# docker exec -it 33d9582b76bf /bin/bash
root@33d9582b76bf:/#     
root@33d9582b76bf:/# exit
exit
root@host1:~# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
13406586d37f   ubuntu:22.04   "/bin/bash"   20 minutes ago   Up 20 minutes             test2
33d9582b76bf   ubuntu:22.04   "/bin/bash"   43 minutes ago   Up 42 seconds             test1
root@host1:~# 

 使用docker exec进入容器,如果从这个容器退出,容器不会停止。

3.9 docker rm 删除容器

root@host1:~# docker rm -f test1
test1
root@host1:~# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS                    PORTS     NAMES
13406586d37f   ubuntu:22.04   "/bin/bash"   26 minutes ago   Up 26 minutes                       test2
6843deb526c2   hello-world    "/hello"      12 hours ago     Exited (0) 12 hours ago             great_booth
root@host1:~# 

4、容器之间相互Ping通

1、进入容器test1/test2,并安装相应软件:

容器test1安装软件:
root@host1:~# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
e6fb111b9b11   ubuntu:22.04   "/bin/bash"   3 seconds ago    Up 3 seconds              test1
13406586d37f   ubuntu:22.04   "/bin/bash"   30 minutes ago   Up 30 minutes             test2
root@host1:~# docker exec -it e6fb111b9b11 /bin/bash
root@e6fb111b9b11:/# ip a
bash: ip: command not found
root@e6fb111b9b11:/# apt update
root@e6fb111b9b11:/# apt install iproute2
root@e6fb111b9b11:/# apt install inetutils-ping -y

root@e6fb111b9b11:/# exit
exit

容器test2安装软件:
root@host1:~# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
e6fb111b9b11   ubuntu:22.04   "/bin/bash"   5 minutes ago    Up 5 minutes              test1
13406586d37f   ubuntu:22.04   "/bin/bash"   35 minutes ago   Up 35 minutes             test2
root@host1:~# 
root@host1:~# docker exec -it 13406586d37f /bin/bash
root@13406586d37f:/# apt update

2、查看容器ip地址信息,并相互ping

root@host1:~# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
e6fb111b9b11   ubuntu:22.04   "/bin/bash"   10 minutes ago   Up 10 minutes             test1
13406586d37f   ubuntu:22.04   "/bin/bash"   40 minutes ago   Up 40 minutes             test2

进入容器test1:
root@host1:~# docker exec -it e6fb111b9b11 /bin/bash
root@e6fb111b9b11:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
23: eth0@if24: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
root@e6fb111b9b11:/# 

进入容器test2:
root@host1:~# docker exec -it 13406586d37f /bin/bash
root@13406586d37f:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
15: eth0@if16: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

容器test2 ping 容器test1:
root@e6fb111b9b11:/# ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2): 56 data bytes
64 bytes from 172.17.0.2: icmp_seq=0 ttl=64 time=0.061 ms
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.040 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.033 ms
^C--- 172.17.0.2 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.033/0.045/0.061/0.000 ms
root@e6fb111b9b11:/# 

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

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

相关文章

LVS集群的nat模式详解(负载均衡)

目录 一、LVS集群的介绍 1、LVS 相关术语&#xff1a; 2、lvs工作原理 3、相关名词概念 4、lvs集群的类型 二、lvs的nat模式 1、介绍&#xff1a; 2、数据逻辑&#xff1a; 3、nat实验部署 环境搭建&#xff1a; 1、lvs中要去打开内核路由功能&#xff0c;实现网络互联…

完整指南:卡片设计入门及实用技巧解析

UI卡片是对响应设计的终极回应。无论是响应布局还是自适应布局&#xff0c;卡片UI设计都可以为适应做出贡献&#xff0c;其灵活可控的容器结构可以根据总宽度灵活调整布局结构。虽然UI卡片在加载速度和屏幕适应性上有天然的优势&#xff0c;但由于卡片的意识&#xff0c;每个部…

Windows安装MySQL8.0.X版本归档包(zip包)最新教程

文章目录 1.安装包下载1.1 Windows版本下载2.MySQL8.0.X安装2.1 解压压缩包到指定位置2.2 初始化2.3 安装服务2.4 修改默认密码总结参考资料1.安装包下载 你可以下载 msi 文件一键安装,也可以下载解压版 zip 文件(Archive)进行命令行初始化安装,也是个人推荐的方式。 MyS…

温湿度阈值联网控制

温湿度阈值联网控制 引言 目的: 我们不管使用哪种协议, 哪种解决方案, 我们就目前的情况来看, 我们刚开始是使用 手动修改temp_th和 humi_th的方式, 来实现温湿度阈值的控制.但是对于投入到实际使用的话, 我们还需要使用更方便的联网控制, 所以我们首先利用Onenet的解决方案.…

Kickstart

一&#xff1a;实验前提&#xff1a; 1.RHEl7主机 2.开启图形 init5开图形 3.配置网络可用 4.关闭vmware dhcp功能 5.关闭火墙 二&#xff1a;下载kickstart [roottao ~]# yum install system-config-kickstart 三&#xff1a;启动kickstart并完成相关配置&#xff1a;…

JVM 加载阶段 Class对象加载位置是在 堆中还是方法区?

在JVM&#xff08;Java虚拟机&#xff09;的类加载过程中&#xff0c;Class对象的加载位置涉及到堆&#xff08;Heap&#xff09;和方法区&#xff08;Method Area&#xff09;两个关键区域。具体来说&#xff0c;类的加载阶段涉及到将类的.class文件中的二进制数据读入到内存中…

linux搭建redis超详细

1、下载redis包 链接: https://download.redis.io/releases/ 我以7.0.11为例 2、上传解压 mkdir /usr/local/redis tar -zxvf redis-7.0.11.tar.gz3、进入redis-7.0.11&#xff0c;依次执行 makemake install4、修改配置文件redis.conf vim redis.conf为了能够远程连接redis…

PHP高校教材管理系统-计算机毕业设计源码29810

目 录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3系统开发的目标意义 1.4论文结构与章节安排 2 高校教材管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功…

Pyside6实战教程专栏目录

Pyside6实战教程&#x1f680; 专栏目录介绍 本专栏将详细地向Python开发者展示如何利用PySide6框架创建功能丰富的桌面应用程序。无论你是刚刚接触GUI编程的新手&#xff0c;还是希望快速提升自己技能水平的进阶用户&#xff0c;本文都将为你提供一系列简单易懂的教程&#xf…

Apache漏洞复现CVE-2021-41773

Apache HTTP Server 路径穿越漏洞 漏洞简介 该漏洞是由于Apache HTTP Server 2.4.49版本存在目录穿越漏洞,在路径穿越目录 <Directory/>Require all granted</Directory>允许被访问的的情况下&#xff08;默认开启&#xff09;&#xff0c;攻击者可利用该路径穿越…

混合现实技术在虚拟培训、销售展示及教育科研等领域的应用方向

混合现实技术是虚拟现实技术的进一步发展方向&#xff0c;与传统的沉浸式虚拟现实技术相比混合现实技术能够为用户提供更多元化的观看场景。通过将虚拟物体与现实世界融合的全新形式为&#xff0c;包括虚拟训练、产品销售、教育科研等领域赋能。 混合现实技术中最为重要的是显示…

什么是爬虫软件?这两个爬虫神器你必须要试试

爬虫软件概述 爬虫&#xff0c;又称为网络爬虫或网页爬虫&#xff0c;是一种自动浏览互联网的程序&#xff0c;它按照一定的算法顺序访问网页&#xff0c;并从中提取有用信息。爬虫软件通常由以下几部分组成&#xff1a; 用户代理&#xff08;User-Agent&#xff09;&#xf…

08.FreeRTOS任务调度与任务切换

文章目录 08. FreeRTOS任务调度与任务切换1. FreeRTOS任务调度2. SVC中断服务函数源码调试结果分析3. FreeRTOS任务切换3.1 PendSV异常3.2 PendSV中断服务函数3.3 PendSV中断服务函数源码调试分析3.4 确定下一个要执行的任务 08. FreeRTOS任务调度与任务切换 1. FreeRTOS任务调…

MIMO技术入门(通俗易懂)

MIMO技术的思路 形象地形容就是&#xff0c;从原来的一个人在搬砖&#xff0c;转变成多个人在搬砖。 MIMO/SIMO/MISO示意图 MIMO用专业一点的词形容&#xff0c;就是发射端和接收端都有多个天线&#xff0c;这里的多天线并不是指有多个天线板&#xff0c;对于基站来说&#…

Ubuntu distro环境搭建

0 Preface/Foreword 1 环境搭建 1.1 安装make工具 sudo apt install make 1.1.1 查看make版本 1.1.2 查看make使用方法 2 搭建交叉编译工具链 2.1 解压交叉工具链到指定路径 命令解释如下&#xff1a; sudo&#xff0c; 表示使用administrative privilegetar&#xff0c;…

Unity补完计划 之 Mask SortingGroup

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正 1.Mask 遮罩故名思意就是起到遮挡作用的罩子:精灵遮罩 - Unity 手册 如果我想让sprite与遮罩发生交互&#xff0c;那么我…

宇哥18讲需要同步搭配他的1000题吗?

张宇老师本来就以“偏难怪”著称&#xff0c;无独有偶&#xff0c;24考研真题也是“偏难怪”&#xff01; 所以&#xff0c;24考研结束之后&#xff0c;大家欧鼓吹张宇「封神」 先不说张宇老师是不是真的符合考研的趋势&#xff0c;但是跟张宇老师的同学确实比跟其他老师的同…

工具变量模型及 Stata 具体操作步骤

目录 一、引言 二、文献综述 三、理论原理 四、实证模型 五、程序代码及解释 六、代码运行结果 一、引言 在实证研究中&#xff0c;我们常常面临内生性问题&#xff0c;即解释变量与误差项相关&#xff0c;这可能导致估计结果的偏差和不一致。工具变量&#xff08;Instrum…

<数据集>agv仓储机器人识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1514张 标注数量(xml文件个数)&#xff1a;1514 标注数量(txt文件个数)&#xff1a;1514 标注类别数&#xff1a;3 标注类别名称&#xff1a;[G1PB2000_Paleteira_AGVS BYD, G1RB5000, AGV-P] 序号类别名称图片数…

Web性能监测的利器Performance Observer!!

前言 前段时间在研究前端异常监控平台&#xff0c;在思考性能监控时&#xff0c;想到了浏览器自带的观察者以及页面生命周期API 。于是在翻查资料时发现了&#xff0c;Performance ObserverAPI。正好趁着这个机会给大家好好讲讲Performance Observer API Performance Observe…