【Docker】网络模式详解及容器间网络通信

目录

一、概述

二、默认网络

三、网络模式及应用

1. Bridge模式

2. Host模式

3. none网络模式

四、自定义网络应用

1. 网络相连

2. 自定义通讯

3. 自定义IP

每篇一获


一、概述

在 Docker 中,网络设置包括 IP 地址、子网掩码、网关、DNS 和端口号等关键组成部分。下面我将为您详细介绍这些概念:

  1. IP 地址:IP 地址是 Docker 容器在网络中的唯一标识。每个 Docker 容器都会被分配一个 IP 地址,用于在网络中进行通信。在 Docker 的默认网络模式下,Docker 容器的 IP 地址是由 Docker 内部的 IPAM(IP 地址管理)系统自动分配的。

  2. 子网掩码:子网掩码用于划分 IP 地址的网络部分和主机部分。在 Docker 中,您可以在创建自定义网络时指定子网掩码,以划分您的 Docker 网络。

  3. 网关:网关是 Docker 容器访问外部网络的入口。在 Docker 的默认网络模式下,Docker 容器的网关是由 Docker 内部的 IPAM 系统自动分配的。

  4. DNS:DNS(域名系统)用于将域名解析为 IP 地址。在 Docker 中,您可以在创建 Docker 容器时指定 DNS 服务器,以便 Docker 容器可以解析域名。

  5. 端口号:端口号用于标识 Docker 容器内部的特定网络服务。在 Docker 中,您可以在创建 Docker 容器时指定端口映射,以便外部网络可以访问 Docker 容器内部的网络服务。

以上就是 Docker 中关于网络的 IP 地址、子网掩码、网关、DNS 和端口号的详细介绍。理解这些概念对于管理和配置 Docker 容器的网络环境非常重要。

子网掩码:

子网掩码是网络地址的一部分,用于划分网络地址和主机地址。它是一个 32 位的二进制数,其中网络部分全为 1,主机部分全为 0。子网掩码的主要作用是帮助网络设备判断一个 IP 地址的哪些位代表网络地址,哪些位代表主机地址。

在 Docker 中,当我们创建自定义网络时,可以指定子网掩码。例如,我们可以创建一个子网掩码为 255.255.255.0 的网络,这意味着这个网络的前 24 位(即 255.255.255)是网络地址,后 8 位是主机地址。这样,我们就可以在这个网络中创建最多 256(2 的 8 次方)个 Docker 容器。

子网掩码的设置对于 Docker 网络的划分和管理非常重要。通过合理地设置子网掩码,我们可以有效地管理 Docker 容器的网络资源,例如避免 IP 地址的冲突,或者根据需要划分不同的网络区域。

网关:

网关在网络中起着非常重要的作用,它是一个网络设备,用于连接两个或更多的网络,使得这些网络可以互相通信。在 Docker 中,网关通常被用于连接 Docker 容器和外部网络。

在 Docker 的默认网络模式下,每个 Docker 容器都会被分配一个网关地址。这个网关地址是 Docker 容器访问外部网络的入口,所有从 Docker 容器发出的网络请求都会通过这个网关地址转发到外部网络。

例如,如果一个 Docker 容器需要访问互联网上的一个网站,它会将网络请求发送到它的网关地址,然后由网关将请求转发到互联网。同样,所有发往 Docker 容器的网络响应也会通过网关地址转发回 Docker 容器。

在创建自定义网络时,我们可以指定网关地址。这样,我们就可以控制 Docker 容器的网络访问,例如限制 Docker 容器访问特定的外部网络,或者设置网络路由规则。

二、默认网络

安装 Docker 以后,会默认创建三种网络,可以通过 docker network ls 命令查看。

  1. Bridge:Bridge 网络是 Docker 的默认网络模型。当您启动一个新的 Docker 容器时,如果没有指定网络,Docker 就会自动将这个容器连接到 Bridge 网络。Bridge 网络允许容器之间通过 IP 地址或者容器名进行通信,但是,不同的 Bridge 网络之间的容器是无法进行通信的。

  2. Host:在 Host 网络模式下,Docker 容器将直接使用主机的网络,无需进行任何的网络转发。这意味着,如果您在容器中启动了一个网络服务,那么这个服务将直接使用主机的网络端口。

  3. None:None 网络模式下,Docker 容器将运行在自己的网络命名空间中,但是不会进行任何网络配置。这意味着,这个容器没有网络接口,无法进行网络通信。

三、网络模式及应用

1. Bridge模式

Bridge 网络模式 是 Docker 的默认网络模式,又称网桥模式,它为 Docker 容器提供了一种简单且有效的网络连接方式。以下是 Bridge 网络模式的主要作用和应用:

  1. 容器间通信:在 Bridge 网络模式下,同一 Bridge 网络中的 Docker 容器可以通过 IP 地址或者容器名进行通信。这使得在同一主机上运行的不同容器可以方便地共享数据和服务。

  2. 网络隔离:每个 Bridge 网络都是独立的,不同 Bridge 网络之间的容器无法直接通信。这为 Docker 容器提供了一种有效的网络隔离机制,可以防止不同应用之间的网络干扰。

  3. 端口映射:Bridge 网络模式支持 Docker 容器和主机之间的端口映射。这意味着,您可以将 Docker 容器的网络服务通过特定的端口暴露给主机,从而使得外部网络可以访问到 Docker 容器的服务。

在实际应用中,Bridge 网络模式被广泛用于部署和运行各种 Docker 应用。例如,您可以使用 Bridge 网络模式来部署一个 Web 服务器和数据库服务器,然后通过端口映射将 Web 服务器的服务暴露给外部网络,同时保持数据库服务器在网络中的隔离。

命令:

docker run -itd --name t1  -p 9999:8080  tomcat:8.5.20

t1名称  9999主机端口  8080虚拟机端口   tomcat镜像   镜像版本8.5.20

查看:

docker inspect t1

t1 容器名称

查看信息如下:

  1. Gateway:这是 Docker 容器的默认网关,也就是容器发送的所有非本地地址的网络流量都会通过这个网关路由。在大多数情况下,这个网关就是 Docker 容器所在的主机。

  2. IPAddress:这是 Docker 容器在其网络内的 IP 地址。每个 Docker 容器在其所连接的网络中都会有一个唯一的 IP 地址,其他容器可以通过这个 IP 地址与其进行通信。

查看默认网络【bridge】:

docker inspect bridge

  1. Container ID:这是 Docker 容器的唯一标识符,由 Docker 在创建容器时自动生成。

  2. Name:这是 Docker 容器的名称,可以在创建容器时由用户自定义,也可以由 Docker 自动生成。

  3. IPv4Address:这是 Docker 容器在 Bridge 网络中的 IPv4 地址。其他容器可以通过这个地址与其进行通信。

  4. IPv6Address:这是 Docker 容器在 Bridge 网络中的 IPv6 地址。如果 Docker 容器的网络配置支持 IPv6,那么这个地址就会被显示出来。

  5. EndpointID:这是 Docker 容器在 Bridge 网络中的端点标识符。Docker 使用这个标识符来跟踪容器的网络连接。

  6. MacAddress:这是 Docker 容器的 MAC 地址。虽然 Docker 容器是虚拟的,但是它们在网络中的行为就像真实的物理设备一样,包括拥有自己的 MAC 地址。

  • 外部访问

设置端口映射

docker run -itd --name bridge -p 8081:8080 spring:1.0

在这个 Docker 命令中,-p 8081:8080 是一个端口映射参数。这个参数的作用是将 Docker 容器内的端口映射到宿主机的端口上。

具体来说,8081:8080 的含义是:

  • 8081 是宿主机的端口号。
  • 8080 是 Docker 容器内的端口号。

这个参数的设置意味着,Docker 容器内运行的应用如果监听在 8080 端口,那么这个应用的服务就可以通过宿主机的 8081 端口进行访问。

例如,如果您的 spring:1.0 容器是运行一个 Web 服务,并且这个服务在容器内监听 8080 端口,那么您就可以通过访问宿主机的 8081 端口来使用这个 Web 服务。

端口映射是 Docker 的一个重要特性,它使得 Docker 容器内的应用可以方便地对外提供服务,而无需关心容器的网络环境和配置。

-p 参数可以出现多次,绑定多个端口号

docker run -itd --name bridge -p 8081:8080  -p 8082:8080 spring:1.0

在这个的 Docker 命令中,-p 8081:8080 -p 8082:8080 是端口映射参数,这里映射了两个宿主机端口到同一个 Docker 容器内的端口。

具体来说:

  • -p 8081:8080 表示将 Docker 容器内的 8080 端口映射到宿主机的 8081 端口。
  • -p 8082:8080 表示将 Docker 容器内的 8080 端口映射到宿主机的 8082 端口。

这个设置意味着,Docker 容器内运行的应用如果监听在 8080 端口,那么这个应用的服务就可以通过宿主机的 8081 端口和 8082 端口进行访问。

这种绑定多个端口的方式可以让您有更多的选择来访问 Docker 容器内的服务,也可以用来处理一些特殊的网络需求,例如负载均衡和端口冲突等问题。

2. Host模式

Host 网络模式 是 Docker 的一种网络模式,又称主机模式,它允许 Docker 容器共享宿主机的网络命名空间。以下是 Host 网络模式的主要作用和应用:

  1. 性能优化:在 Host 网络模式下,Docker 容器可以直接使用宿主机的网络,无需通过 Docker 的网络桥接,这可以减少网络延迟,提高网络性能。

  2. 端口管理:在 Host 网络模式下,Docker 容器内的端口会直接映射到宿主机的端口,无需进行额外的端口映射设置。这使得端口管理更加简单,也避免了端口映射可能带来的端口冲突问题。

  3. 网络服务部署:对于需要直接使用宿主机网络的网络服务,例如需要监听宿主机所有 IP 地址的服务,或者需要使用特定网络接口或协议的服务,Host 网络模式是一个很好的选择。

在实际应用中,Host 网络模式常常被用于部署需要高性能网络或者特殊网络需求的 Docker 应用。例如,您可以使用 Host 网络模式来部署一个需要监听所有 IP 地址的 Web 服务器,或者一个需要使用特定网络接口的 VPN 服务。

需要注意的是,Host 网络模式下的 Docker 容器会直接共享宿主机的网络,这可能会带来一些安全风险,因此在使用 Host 网络模式时,需要对 Docker 容器的网络访问进行适当的控制和限制。

创建: 

docker run -itd --name t2 -p8848:8080 --net host tomcat:8.5.20

创建完成之后,可以直接在主机上通过虚拟机ip访问:

在这个模式下不用映射端口也可以访问,默认8080直接映射:

删除容器:docker rm -f t2  (删除已有容器t2)

创建:docker run -itd --name t2  --net host tomcat:8.5.20

3. none网络模式

None 网络模式 是 Docker 的一种网络模式,它为 Docker 容器提供了一个最小化的网络环境。

在 None 网络模式下,Docker 容器拥有自己的网络命名空间,但是不会进行任何网络设备、IP 地址和路由的配置。这意味着,Docker 容器在 None 网络模式下无法进行网络通信。

以下是 None 网络模式的主要应用:

  1. 网络隔离:None 网络模式可以为 Docker 容器提供一个完全隔离的网络环境,这对于需要高度网络隔离的应用非常有用。例如,您可以使用 None 网络模式来运行一些安全敏感的应用,以防止这些应用被网络攻击。

  2. 自定义网络配置:虽然 None 网络模式下的 Docker 容器默认无法进行网络通信,但是您可以在容器内部进行自定义的网络配置,以满足特殊的网络需求。例如,您可以在 None 网络模式下的 Docker 容器内部设置 VPN,以实现容器的网络通信。

需要注意的是,None 网络模式下的 Docker 容器默认无法进行网络通信,因此在使用 None 网络模式时,需要对 Docker 容器的网络需求进行详细的评估和规划。

  • none 网络模式是指禁用网络功能,只有 lo 接口 local 的简写,代表 127.0.0.1,即 localhost 本地环回接口。在创建容器时通过参数 --net none 或者 --network none 指定;
  • none 网络模式即不为 Docker Container 创建任何的网络环境,容器内部就只能使用 loopback 网络设备,不会再有其他的网络资源。可以说 none 模式为 Docke Container 做了极少的网络设定,但是俗话说得好“少即是多”,在没有网络配置的情况下,作为 Docker 开发者,才能在这基础做其他无限多可能的网络定制开发。这也恰巧体现了 Docker 设计理念的开放。

我们可以通过 docker network inspect none 查看所有 none 网络模式下的容器,在 Containers 节点中可以看到容器名称。

四、自定义网络应用

1. 网络相连

删除所有容器,看容器中的网络是否相互连得通,当然也可以不删除,保证容器不一致即可

删除所有容器:docker rm -f $(docker ps -aq)

创建:docker run -it --name c1 centos

并且查看ip:ip addr

创建:docker run -it --name c2 centos

并且查看ip:ip addr

在c1中看看可不可以连接到c2中,进行网络相连

命令:ping 172.17.0.3  (172.17.0.3是c2的ip)

在c2中看看可不可以连接到c1中,进行网络相连

命令:ping 172.17.0.2  (172.17.0.2是c1的ip)

由以上看出两容器是网络相连的

2. 自定义通讯

创建路径:

mkdir -p /mysql/{conf,data}

创建一个mysql目录在其中创建了两个文件夹,名为conf,data

将主机(自己的电脑)上的mysql配置文件拖到虚拟机的新建路径中的conf文件夹中

my.cnf :

[client]
default-character-set=utf8[mysql]
default-character-set=utf8[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pidinit_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
# default: sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# modeified: 
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet=10M
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password

创建目录:mkdir mode

将主机(自己的电脑)上的war拖到虚拟机的新建路径中

创建一个基于tomcat的容器并进行目录挂载:

docker run -it \
--name t1 \
-p 8080:8080 \
-v /mode:/usr/local/tomcat/webapps \
tomcat:8.5.20 

之后在mysql目录中执行命令:

docker run \
--name m1 \
-v /mysql/conf/my.cnf:/etc/my.cnf \
-v /mysql/data:/var/lib/mysql \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql/mysql-server:5.7

这里需要下载镜像,等待下载完成并且创建完成即可。

进入mysql容器:

命令:docker exec -it m1 bash

之后登入:mysql -uroot -p  

输入创建时的密码即可,也就是在mysql目录中执行命令中的MYSQL_ROOT_PASSWORD

在mysql中创建一个名为jun的用户,可以进行远程访问

命令:grant all on *.* to jun@'%' identified by '123456';

并且退出:exit 

重新启动mysql容器

命令:docker restart m1

在启动的war中的配置文件进行修改/mode/bs/WEB-INF/classes/中的application.yml的mysql

配置:

在这里也可以写容器的ip进行目录,查看容器信息即可查看容器IP

3. 自定义IP

需要先创建一个网络

docker network create --subnet 172.18.0.0/16  mode

其中mode为网络名称,可以直接修改名称,subnet是指定IP

查看我们创建网络的网段:docker inspect mode    (mode是需要查看的网络名称)

创建并指定容器的IP:

1. tomcat

docker run -it --name t1 \
-p 8080:8080 \
-v /mode:/usr/local/tomcat/webapps \ 
--net mode  \
--ip 172.18.0.2 \ 
tomcat:8.5.20

2. mysql

docker run \
--name m1 \
-v /mysql/conf/my.cnf:/etc/my.cnf \
-v /mysql/data:/var/lib/mysql \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
--net mode \
--ip 172.18.0.3 \
-d mysql/mysql-server:5.7

之后修改根据容器的名称修改war中的配置连接mysql,/mode/bs/WEB-INF/classes/中的application.yml,如何修改上面由讲述。

每篇一获

学习 Docker 的网络模式以及如何自定义网络和 IP,可以带给我们以下几方面的收获:

  1. 更好的网络管理:理解 Docker 的网络模式可以帮助我们更好地管理 Docker 容器的网络环境,例如选择合适的网络模式来满足特定的网络需求,或者解决 Docker 容器的网络问题。

  2. 更高的网络性能:通过选择合适的网络模式,例如 Host 网络模式,我们可以提高 Docker 容器的网络性能。同时,通过自定义网络和 IP,我们可以进一步优化 Docker 容器的网络配置,以提高网络性能。

  3. 更强的网络安全:理解 Docker 的网络模式可以帮助我们更好地保护 Docker 容器的网络安全,例如使用 None 网络模式来实现网络隔离,或者使用自定义网络和 IP 来限制 Docker 容器的网络访问。

  4. 更大的网络灵活性:通过自定义网络和 IP,我们可以为 Docker 容器创建更灵活的网络环境,例如创建多个网络来隔离不同的 Docker 容器,或者为 Docker 容器分配特定的 IP 地址。

总的来说,学习 Docker 的网络模式以及如何自定义网络和 IP,可以帮助我们更好地使用 Docker,提高我们的工作效率和产品质量。

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

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

相关文章

一文了解GeoTrust SSL证书

在当今互联网的高度连接世界中,确保网站安全性至关重要。SSL证书是保护网站和用户数据的关键组成部分。GeoTrust证书在SSL证书市场上享有盛誉,被许多网站所有者和企业所信赖。JoySSL将深入探讨GeoTrust证书的特点,帮助大家了解该品牌并做出更…

Go后端开发 -- 反射reflect 结构体标签

Go后端开发 – 反射reflect && 结构体标签 文章目录 Go后端开发 -- 反射reflect && 结构体标签一、反射reflect1.编程语言中反射的概念2.interface 和反射3.变量内置的pair结构4.reflect的基本功能TypeOf和ValueOf5.从relfect.Value中获取接口interface的信息6…

Docker本地私有仓库搭建配置指导

一、说明 因内网主机需要拉取镜像进行Docker应用,因此需要一台带外主机作为内网私有仓库来提供内外其他docker业务主机使用。参考架构如下: 相关资源:加密、Distribution registry、Create and Configure Docker Registry、Registry部署、D…

【C语言深度剖析——第三节(关键字3)】《C语言深度解剖》+蛋哥分析+个人理解

本文由睡觉待开机原创,未经允许不得转载。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言,共同进步! 目录 1.基本数据类型2.sizeof关键字 前言: 本期我们继续探讨关于C深度解剖这本书相关内容&#…

Java爬虫爬取图片壁纸

Java爬虫 以sougou图片为例:https://pic.sogou.com/ JDK17、SpringBoot3.2.X、hutool5.8.24实现Java爬虫,爬取页面图片 项目介绍 开发工具:IDEA2023.2.5 JDK:Java17 SpringBoot:3.2.x 通过 SpringBoot 快速构建开发环境…

IT大侦“碳”:Concept Luna向循环设计持续演进

IT大侦“碳”:Concept Luna向循环设计持续演进

代码、课程、教学的一些思考-2024

1 代码、算法、艺术品 1.1 代码 最典型的C代码示例。 以下是一个简单的C代码示例&#xff0c;它打印出“Hello, World!”&#xff1a; #include <iostream> int main() { std::cout << "Hello, World!"; return 0; } 这段代码定义了一个程序&a…

C#winform上位机开发学习笔记1-串口助手的ModbusCRC功能

1.首先自定义CRC校验函数 private UInt16 Crc_Check(byte[] Data, byte DataLEN){UInt16 CRC 0xFFFF;for (byte i 0; i < DataLEN; i){ CRC ^ Data[i];for(byte j 0; j < 8; j){if((CRC & 0x0001) 0x0001){CRC (UInt16)((CRC >> 1) ^ 0xA001);}else{CRC …

DDoS攻击规模最大的一次

有史以来DDoS攻击规模最大的是哪一次&#xff1f; Google Cloud团队在2017年9月披露了一次此前未公开的DDoS攻击&#xff0c;其流量达 2.54Tbps&#xff0c;是迄今为止有记录以来最大的DDoS攻击。 在同时发布的另一份报告中&#xff0c;分析高端威胁团体的谷歌安全团队谷歌威胁…

Vray渲染效果图材质参数设置

渲染是创造出引人入胜视觉效果的关键步骤&#xff0c;在视觉艺术领域尤为重要。不过&#xff0c;渲染作为一个资源密集型的过程&#xff0c;每当面对它时&#xff0c;我们往往都会遭遇到时间消耗和资源利用的巨大挑战。幸运的是&#xff0c;有几种方法能够帮助我们优化渲染&…

网易云音乐 API

网易云音乐 API 网易云音乐 API灵感来自环境要求安装运行Vercel 部署操作方法 可以在Node.js调用支持 TypeScript使用文档功能特性更新日志单元测试SDK贡献者License 网易云音乐 API 网易云音乐 Node.js API service 灵感来自 disoul/electron-cloud-music darknessomi/musi…

Jira 宣布Data Center版涨价5%-15%,6年内第8次提价

近日&#xff0c;Atlassian官方面向合作伙伴发布2024年涨价通知&#xff1a; 自2024年2月15日起&#xff0c;旗下核心产品Jira Software、Confluence、Jira Service Management的DC版本&#xff08;Data Center版本&#xff09;价格提高5%-15%&#xff08;涨幅与坐席数阶梯相关…

【算法】串联所有单词的子串【滑动窗口】

题目 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。例如&#xff0c;如果 words ["ab","cd","ef"]&#xff0c; 那么 "abcd…

[NSSRound#16 Basic]RCE但是没有完全RCE

题目代码&#xff1a; <?php error_reporting(0); highlight_file(__file__); include(level2.php); if (isset($_GET[md5_1]) && isset($_GET[md5_2])) {if ((string)$_GET[md5_1] ! (string)$_GET[md5_2] && md5($_GET[md5_1]) md5($_GET[md5_2])) {i…

微店商品详情API(micro.item_get)的数据分析和挖掘

随着电商行业的迅猛发展&#xff0c;微店作为电商平台的重要组成部分&#xff0c;提供了丰富的API接口供开发者使用。其中&#xff0c;微店商品详情API&#xff08;micro.item_get&#xff09;是用于获取商品详情的接口&#xff0c;为数据分析和挖掘提供了大量有价值的数据源。…

Kafka-消费者-KafkaConsumer分析

与KafkaProducer不同的是&#xff0c;KafkaConsumer不是一个线程安全的类。 为了便于分析&#xff0c;我们认为下面介绍的所有操作都是在同一线程中完成的&#xff0c;所以不需要考虑锁的问题。 这种设计将实现多线程处理消息的逻辑转移到了调用KafkaConsumer的代码中&#x…

HTML 表单

文章目录 表单什么是表单GET和POST两种提交方式有什么不同?表单元素表单项外文本单行文本输入框单行文本密码框单选框复选框下拉列表框上传文件隐藏域填写邮箱填写电话填写数字填写日期进度条多行文本输入框提交按钮取消按钮 用户注册案例 表单 什么是表单 form:表单元素 此…

navigateTo失效-跳转不了页面解决办法!uniapp\vue

改了一个小时多的错误&#xff0c;跳转页面无论怎么样都跳转不了&#xff0c;有2个问题&#xff1a; 注意&#xff1a;uniapp的报错可以在console里检查&#xff01; 1.pages.json文件没有配置路径&#xff0c; 在pages:[ ]里面加 &#xff08;根据自己的路径进行修改 {&qu…

Python爬虫---scrapy框架---当当网管道封装

项目结构&#xff1a; dang.py文件&#xff1a;自己创建&#xff0c;实现爬虫核心功能的文件 import scrapy from scrapy_dangdang_20240113.items import ScrapyDangdang20240113Itemclass DangSpider(scrapy.Spider):name "dang" # 名字# 如果是多页下载的话, …

Byrdhouse AI实时语音翻译工具,可以在视频通话中翻译100多种语言

你是否曾经在跨国会议或与外国友人聊天时&#xff0c;因为语言不通而感到尴尬或困扰&#xff1f;是不是还在找可以实时翻译的软件或者APP&#xff1f;现在&#xff0c;有了这款语音翻译神器&#xff0c;一切都将变得简单&#xff01; 免费使用链接&#xff1a;https://byrdhous…