“Docker网络模式详解与应用“

news2025/1/10 3:15:26

目录

前言

Docker内置网络

bridge

基本概念

案例

工作原理

使用场景

host

基本概念

案例

工作原理

使用场景

none

基本概念

案例

!!!大佬救命

container

基本概念

案例

自定义网络

自定义bridge

基本概念

案例

Docker网络允许您将容器附加到任意数量的网络

使用方法

overlay

基本概念

工作原理

使用场景

使用方法

注意事项

macvlan

基本概念

工作原理

使用场景

使用方法

注意事项

总结


前言

Docker作为一个革命性的技术平台,极大地简化了应用程序的部署、管理和扩展过程,其中容器网络是其核心组件之一,对于充分挖掘Docker潜力至关重要。虽然不少开发者和IT专业人员可能已经接触或应用过Docker,但深入理解其网络机制仍然是提升容器化技能的关键步骤。本文旨在提供一个全面而深入的指南,帮助您不仅了解Docker网络的基础,还能掌握其高级特性和最佳实践。


Docker内置网络

当我们完成docker engine的安装以后,docker会在每一个engine上面生成一个3种网络,他们是:bridge, none还有host


 

bridge

基本概念

当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。

如下图所示,当Docker1需要访问外网时,请求先到达Docker0虚拟网卡,然后在到达物理网卡,请求就发送出去了。

案例

( 1 ) 客 户 端 执 行 "docker run ” 命 令 创 建 并 启 动 容 器 。

查看容器信息

docker inspect nginx

( 2 ) Docker 引 擎 创 建 一 对 虚 拟 接 囗 veth pair; 并 把 它 们 分 别 放 到 宿 主 机 和 新 容 器 的 网 络 命 名 空 间 中 。

( 3 ) Docker 引 擎 将 宿 主 机 上 的 veth 接 囗 连 接 到 宿 主 机 的 dockerO 网 桥 上 , 并 且 给 它 分 配 一 个 以 "veth ” 开 头 的 名 字, 如 veth8ead84e@if117 。

( 4 ) Docker 引 擎 将 容 器 上 的 veth 接 囗 改 名 为 "ethO ” , 并 且 该 接 囗 只 有 在 容 器 内 网 络 命 名 空 间 中 是 可 见 的 。

( 5 ) Docker 引 擎 从 宿 主 机 的 dockerO 网 桥 上 分 配 一 个 空 闲 的 ip 地 址 给 容 器 内 的 eth0 , 例 如 : 172 .17.0.2 。 并 将 容 器 内 eth0 的 路 由 网 关 设 置 为 docker0 的 内 部 IP 地 址 , 例 如 : 172 .17.0.1 。 完 成 以 上 的 这 些 步 骤 后 , 容 器 就 可 以 使 用 其 内 部 的 虚 拟 接 囗 "eth0 ” 来 连 接 到 其 他 的 容 器 和 访 问 外 部 的 网 络 了 。

由于上面启动nginx容器的时候使用的是默认的bridge网络,并且也没有添加端口映射,所以iptables不会做DNAT规则

如果启动容器的时候做了端口映射,则iptables会做DNAT规则,实现端口转发功能,可以使用iptables -t nat -nL查看

工作原理

Docker 中启动容器时,如果没有指定网络模式,它默认连接到 Docker 主机上的一个桥接网络。这个桥接网络起初是空的,当容器连接到它时,Docker 会为每个容器分配一个 IP 地址和一个网络接口,并将这个接口连接到虚拟桥接上。

Docker 的桥接网络通常使用 NAT(网络地址转换)来连接到物理网络,使得容器能够通过宿主机的 IP 地址访问外部网络。

使用场景

  • 隔离容器网络环境:当你希望运行的每个容器都有独立的网络堆栈时,Bridge网络非常有用。每个使用Bridge网络的容器都会获得自己的IP地址,并且容器之间的网络通信需要通过端口映射来进行,这提供了基本的网络隔离。
  • 快速部署和测试:在开发和测试环境中,Bridge网络可以让开发者快速搭建一个与外部网络隔离的环境来部署和测试应用,而不会影响到主机或其他网络环境。
  • 服务发现:虽然基础的Bridge网络不直接支持服务发现,但通过结合DNS解析(如使用docker-compose或Kubernetes中的服务发现机制)可以在一定程度上实现容器间的服务发现和通信。
  • 端口映射:当需要从宿主机或其他网络访问容器内的服务时,可以使用Bridge网络并通过端口映射功能将容器的内部端口映射到宿主机的一个端口上,便于外部访问。
  • 多主机通信需求不高场景:对于一些简单的多容器应用,如果不需要跨主机的容器网络通信,或者可以通过其他手段(如使用外部负载均衡器)来实现跨主机通信,使用Bridge网络就足够了。
  • 轻量级解决方案:相比于更复杂的网络解决方案如overlay网络(用于跨多个Docker主机的容器通信)或macvlan网络,Bridge网络更简单、轻量,适合对网络需求不复杂的场景。

 

host

基本概念

host 模式 : 使用 --net=host 指定

相当于VMware 中的桥接模式,与宿主机在同一个网络中,但是没有独立IP地址

Docker 使用了Linux 的Namespace 技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace 隔离网络等。一个Network Namespace 提供了一份独立的网络环境,包括网卡,路由,iptable 规则等都与其他Network Namespace 隔离。一个Docker 容器一般会分配一个独立的Network Namespace

但是如果启动容器的时候使用host 模式,那么这个容器将不会获得一个独立的Network Namespace ,而是和宿主机共用一个Network Namespace 。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口范围.此时容器不再拥有隔离的、独立的网络栈。不拥有所有端口资源

案例

我们拉起一个host网络的centos容器,查看容器信息,如下图所示,并没有发现IP信息

docker run -itd --net=host --name centos7  eeb6ee3f44bd
docker inspect centos7

我们可以进入容器内部去查看下网络信息,通过下图发现,host网络模式下的容器的IP和宿主机IP一致

//进入容器
docker exec -it centos7 bash
//安装网络工具
yum install net-tools -y
//查看IP
ifconfig

工作原理

主机网络模式下,容器将不会获得独立的 IP 地址。容器的网络堆栈将直接映射到宿主机上,容器内的网络服务可以直接绑定到宿主机的 IP 地址和端口上。这种模式通常用于需要进行大量网络操作或需要提供高性能网络服务的场景。

使用场景

  • 性能敏感型应用:当容器化应用需要最大化网络性能时,使用主机网络是一个好选择。因为它消除了网络虚拟化带来的额外开销。
  • 端口冲突:在主机网络模式下,容器可以直接使用宿主机的端口,避免了端口映射可能带来的端口冲突问题。
  • 网络监控和管理:对于需要进行网络监控和管理的工具,主机网络模式能够提供更广泛的网络可视性和控制能力。

 

none

基本概念

使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。

案例

启动一个none网络的centos7的容器,查容器信息

docker run -itd --name centos7 --net=none eeb6ee3f44bd
docker inspect centos7

进入容器查看网络信息

//进入容器
docker exec -it centos7 bash
//安装网络工具
yum install net-tools -y
//查看IP
ifconfig

!!!大佬救命

这里可能处于none网络的原因,导致上面安装网络工具的时候失败

//安装网络工具

yum install net-tools -y

执行日志:

Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"
Trying other mirror.

One of the configured repositories failed (CentOS-7),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:

1. Contact the upstream for the repository and get them to fix the problem.

2. Reconfigure the baseurl/etc. for the repository, to point to a working

upstream. This is most often useful if you are using a newer

distribution release than is supported by the repository (and the

packages for the previous distribution release still work).

3. Run the command with the repository temporarily disabled

yum --disablerepo=base ...

4. Disable the repository permanently, so yum won't use it by default. Yum

will then just ignore the repository until you permanently enable it

again or use --enablerepo for temporary usage:

yum-config-manager --disable base

or

subscription-manager repos --disable=base

5. Configure the failing repository to be skipped, if it is unavailable.

Note that yum will try to contact the repo. when it runs most commands,

so will have to try and fail each time (and thus. yum will be be much

slower). If it is a very temporary problem though, this is often a nice

compromise:

yum-config-manager --save --setopt=base.skip_if_unavailable=true

failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"


container

基本概念

这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。因此,在这种模式下,容器之间可以通过 localhost 或者 127.0.0.1 进行相互间的访问,从而提高了传输的效率。

案例

(1)首先创建个基础容器

docker run -itd --name centos7.A eeb6ee3f44bd

(2)然后基于刚才的容器创建新的容器

 docker run -itd --net=container:04dcd560b6ce --name centos7.B eeb6ee3f44bd

(3)对比上面创建的两个容器centos7.A和centos7.B发现使用了相同的网络命名空间,这是因为在创建容器B时使用了container模式,使得容器B不再创建自己的网络命名空间,而直接使用容器A的网络命名空间。


 

自定义网络

上面介绍的3种自带的网络模式有各自的局限性,因此,docker推荐大家自定义网络。通过自定义网络,我们可以实现“服务发现”与“DNS解析”。

docker 允许我们创建3种类型的自定义网络,bridgeoverlayMACVLAN

  1. bridge:Bridge模式是Docker默认的网络模式,当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,用来连接宿主机和容器,此主机上的Docker容器都会连接到这个虚拟网桥上
  2. overlay:当有多个docker主机时,跨主机的container通信
  3. macvlan:每个container都有一个虚拟的MAC地址

 

bridge

基本概念

虽然Docker提供的默认bridge网络能满足很多基本需求,但在某些场景下,你可能需要创建自定义的bridge网络以实现更灵活的网络配置,比如指定子网、IP范围、网桥名称等。

自定义bridge网络为Docker容器提供了更灵活和可控的网络配置方式,它不仅能够帮助用户更好地组织和隔离容器网络,还支持更复杂的网络架构设计,满足不同应用场景的需求。通过精细的网络配置,可以有效地提升容器化应用的部署效率和管理便利性。

案例

首先创建一个网络(这里创建的时候没有指定子网网段)

docker network create -d bridge test_bridge

看下内置网络bridge和我们创建的test_bridge网络有什么区别

docker inspect test_bridge
docker inspect bridge

自定义test_bridge网络

内置网络bridge

基于自定义网络test_bridge创建一个容器

docker run -itd --name centos7.test --net=test_bridge eeb6ee3f44b

进入容器查看网络信息,会发现分配的ip在172.18.0.0/16网段中

Docker网络允许您将容器附加到任意数量的网络

将我们之前创建的centos7.A容器加入到test_bridge网络中,先看下centos7.A容器最初的网络信息

docker network connect test_bridge centos7.A

断开centos7.A容器和test_bridge网络的连接

docker network disconnect test_bridge centos7.A

使用方法

docker network create --driver bridge --subnet=172.18.0.0/16 my-bridge-network

--driver bridge 指定了网络类型为bridge。
--subnet=172.18.0.0/16 指定了网络的子网和CIDR,你可以根据需要选择合适的子网。
my-bridge-network 是自定义网络的名称。

 

overlay

基本概念

覆盖网络(Overlay Network)是 Docker 的一个高级网络类型,主要用于 Docker Swarm 集群环境中。它允许不同 Docker 主机上的容器相互通信,无论它们的物理位置如何。覆盖网络通过在宿主机之间创建一个虚拟网络层,来连接分布在不同节点上的容器。

工作原理

覆盖网络使用网络驱动(如 VXLAN)在宿主机之间建立一个虚拟网络。这个网络工作在现有的物理网络之上,容器之间的通信会被封装并通过这个虚拟网络传输。当数据包到达目的地后,它会被解封装并传递给目标容器。这种方式使得容器间能够透明地通信,就像它们在同一个网络中一样。

使用场景

  • 多主机容器部署:当你需要在多个 Docker 主机上部署容器,并且这些容器需要相互通信时,覆盖网络是理想的选择。
  • Docker Swarm 集群:在 Docker Swarm 环境中,覆盖网络允许不同节点上的服务实例之间进行通信,非常适合微服务架构。
  • 跨主机负载均衡:覆盖网络支持跨多个宿主机的负载均衡,使得服务可以更加灵活地扩展和管理。

使用方法

要在 Docker Swarm 环境中创建一个覆盖网络,首先确保你的 Docker 环境已经初始化为 Swarm 模式,然后使用以下命令创建覆盖网络:

docker network create -d overlay my_overlay_network

创建了覆盖网络后,你可以在部署服务时指定使用这个网络:

docker service create --name my_service --network my_overlay_network my_image

注意事项

  • 网络性能:由于覆盖网络中存在数据封装和解封装的过程,可能会对网络性能造成一定影响。
  • 安全性Docker 提供了网络加密选项来保护覆盖网络中的数据传输。
  • 网络管理:管理覆盖网络可能需要对 Docker Swarm 集群的管理和网络原理有一定的了解。

 

macvlan

基本概念

Macvlan 网络是 Docker 提供的另一种网络类型,允许容器直接连接到物理网络。每个使用 Macvlan 网络的容器都会被分配一个独立的 MAC 地址,使其在网络上表现得就像是一个物理设备一样。这种网络类型适用于需要容器直接参与物理网络的场景,例如,当容器需要有自己的 IP 地址、或需要绕过 Docker 网络堆栈的复杂性时。

工作原理

Macvlan 网络通过创建一个或多个虚拟网络接口(Macvlan 接口)来工作,这些接口附加到宿主机的物理网络接口上。每个接口都有自己的 MAC 地址,容器通过这些虚拟接口与外部网络进行通信。这样,容器可以直接出现在物理网络上,而不是通过 Docker 主机的网络堆栈。

使用场景

  • 需要直接网络访问:对于需要绕过 NAT、或需要与外部网络中的其他设备直接通信的容器,Macvlan 网络是一个理想的选择。
  • 遗留系统集成:在一些遗留系统或需要直接网络访问的环境中,Macvlan 网络可以帮助容器更好地集成进这些环境中。
  • 网络性能:由于容器直接连接到物理网络,Macvlan 可以提供更好的网络性能,减少虚拟化带来的开销。

使用方法

创建 Macvlan 网络的基本步骤如下:

  • 创建 Macvlan 网络
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 my_macvlan_net

这个命令会在宿主机的 eth0 网络接口上创建一个新的 Macvlan 网络,设置了子网和网关。

  • 运行容器并连接到 Macvlan 网络
docker run --network my_macvlan_net --name my_container my_image

这个命令启动一个容器,并将其连接到刚刚创建的 Macvlan 网络。

注意事项

  • 网络隔离:使用 Macvlan 网络时,容器的网络隔离级别较低,容器直接暴露在物理网络上
  • 路由和防火墙配置:可能需要在网络设备或宿主机上进行额外的路由和防火墙配置,以确保网络通信的正确性和安全性。
  • 宿主机通信:默认情况下,使用 Macvlan 的容器可能无法与其宿主机进行直接通信。这可能需要额外的网络配置来解决。

 

总结

Docker 网络是容器化技术中不可或缺的一部分,它不仅提供了容器之间以及容器与外部世界之间通信的能力,还支持了高度的网络隔离和安全性。通过不同的网络类型和配置,Docker 能够满足各种应用场景的需求,从简单的单机部署到复杂的多主机、跨主机的集群环境。

briadge网络作为默认的网络类型,适用于大多数标准部署场景,提供了容器与外部网络的连接以及容器之间的隔离。host网络模式提供了最高的网络性能,适用于性能敏感型应用。overlay网络支持跨主机的容器通信,是在 Docker Swarm 集群中运行分布式应用的理想选择。Macvlan 网络则允许容器直接连接到物理网络,适用于需要直接网络访问或遗留系统集成的场景。

每种网络类型都有其适用场景和注意事项。选择合适的网络类型和配置,可以帮助开发者和运维人员构建高效、安全且易于管理的容器化应用。同时,Docker 的网络配置和管理工具也提供了灵活性和便利性,使得网络管理变得更加简单。

Docker 网络提供了强大而灵活的网络功能,支持各种应用部署和运行模式。通过合理选择和配置网络类型,可以最大化地发挥 Docker 容器的潜力,构建出高性能、安全且易于管理的容器化应用。

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

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

相关文章

界面控件KendoReact中文教程 - 如何创建动态进度条?

Kendo UI致力于新的开发,来满足不断变化的需求。现在我们非常自豪地宣布,通过React框架的Kendo UI JavaScript封装来支持React Javascript框架。Kendo UI for React能够为客户提供更好的用户体验,并且能够更快地构建更好的应用程序。 KendoR…

树莓派外设驱动WiringPi库

树莓派外设驱动WiringPi库 文章目录 树莓派外设驱动WiringPi库一、树莓派安装WiringPi库二、WiringPi库的使用方法 一、树莓派安装WiringPi库 wiringPi库其实已经很熟悉了,在香橙派中大量使用过,这个库中集成了很多使用的功能性函数,树莓派安…

设计模式-行为型模式-状态模式

1.状态模式的定义 允许一个对象在其内部状态改变时改变他的行为,用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题,状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象的状态可以灵活变化&…

【STM32】GPIO输入实现按键控制LED

1.stm32cubemx配置 和上篇博客配置一样 2.代码编写 实现一个按键按下LED1亮,另一个按下LED灭 KEY1实现LED1亮,KEY2实现LED2灭 1.配置GPIOA,GPIOB时钟使能 2.配置GPIOB模式初始化 3.配置GPIOA模式初始化 基本和2一样,不一样的是按键使用的…

(详)Vue3 + Typescript 项目配置 eslint + prettier + husky + lint-staged

目录 1,前言1.1,eslint 和 prettier 的关系1.2,Node.js 版本的问题 1,eslint1.1,安装1.2,配置文件1.3,集成对 vue 文件的配置1.4,在 package.json 中添加命令 2,prettier…

【代码随想录训练营第42期 Day52打卡 - 岛屿问题2

目录 一、做题心得 二、题目与题解 题目一:卡码网 101. 孤岛的总面积 题目链接 题解:DFS 题目二:卡码网 102. 沉没孤岛 题目链接 题解:DFS 三、小结 一、做题心得 今天做题时间比较晚了,只打卡完成了岛屿问题…

条件生成模型 (conditional generation)

我们之前讲的 GAN 中的生 成器,它没有输入任何的条件,它只是输入一个随机的分布,然后产生出来一张图片。我们现 在想要更进一步的是希望可以操控生成器的输出,我们给它一个条件x,让他根据条件x跟 输入z 来产生输出y。那…

硬件-经典开机电路

文章目录 一:网友公司祖传的开机电路二:电路符号名称三:电路原理分析道友:对于利益相关的人,要展示你的实力和智力。对于利益不相关的人,展示你的礼貌就好。 一:网友公司祖传的开机电路 业务逻辑…

【二】TDEngine快速入门

TDEngine快速入门 目录 TDEngine深入理解 概述 一、核心概念解析 二、基本操作 三、可视化管理工具 总结 概述 TDEngine创始人在官方出品的书籍中写到:我观察到,无论是出行行业还是更广义的运输行业,以及分布式能源系统,都将…

【网络安全 | 渗透工具】Cencys+Shodan使用教程

原创文章,不得转载。 文章目录 Cencys准备语法全文搜索字段和值搜索通配符搜索布尔逻辑搜索嵌套搜索时间相关搜索范围搜索双引号 (")转义序列和保留字符Censys 搜索语言中的主机查询查看主机搜索结果Censys 搜索语言中的证书查询查看证书搜索结果生成报告其余Shodan准备使…

解决MongoDB创建用户报错command createUser requires authentication

1、执行创建用户报错如下: 2、解决方法 2.1 关闭 MongoDB /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongod.conf --shutdown 2.2 修改配置文件 vim /usr/local/mongodb/mongod.conf 将security.authorization值从enabled改为disabled 2.3 启动MongoD…

HTML/CSS/JS学习笔记 Day2(HTML--标签 上)

跟着该视频学习,记录笔记:【黑马程序员pink老师前端入门教程,零基础必看的h5(html5)css3移动端前端视频教程】https://www.bilibili.com/video/BV14J4114768?p12&vd_source04ee94ad3f2168d7d5252c857a2bf358 Day2 内容梳理:…

redission中的锁分类

redis 分布式锁的核心命令 redis分布式锁的实现主要是依靠setnx和expire两个命令完成。 注意:由于setnx和expire是两个命令,会存在如果 setnx 是成功的,但是 expire 设置失败,一旦出现了释放锁失败,或 者没有手工释放…

用华为智驾,开启MPV的下半场

作者 |老缅 编辑 |德新 8月28日,岚图正式对外公布了全球首款搭载华为乾崑智驾和鸿蒙座舱的MPV——全新岚图梦想家。 新车定位「全景豪华科技旗舰MPV」,全系标配四驱,分为四驱鲲鹏版和四驱乾崑版。 其中岚图逍遥座舱和鲲鹏智驾构成的鲲鹏版…

yolov5 +gui界面+单目测距 实现对图片视频摄像头的测距

可实现对图片,视频,摄像头的检测 项目概述 本项目旨在实现一个集成了YOLOv5目标检测算法、图形用户界面(GUI)以及单目测距功能的系统。该系统能够对图片、视频或实时摄像头输入进行目标检测,并估算目标的距离。通过…

【Java】基于JWT+Token实现完整登入功能(实操)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 认识依赖4.2 使用JWT4.3 登入实现4.4 配置拦截器4.5 获取数据 五、总结&…

Unity数据持久化 之 使用Excel.DLL读写Excel表格

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ 终于找到一个比较方便容易读表的方式了,以前用json读写excel转的cvs格式文件我怎么使用怎么别扭&#xf…

合宙4G模组Air780EX——产品规格书

Air780EX 是合宙通信推出的LTE Cat.1 bis通信模块; Air780EX采用移芯EC618平台,支持LTE 3GPP Rel.13 技术; Air780EX 是4G全网通模块,可适应不同的运营商和产品,确保产品设计的最大灵活性。 其主要特点和优势可以总…

(一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别

🍂1、不说废话,现象展示 🍃图片识别 🍃视频识别 自己训练样本 十分简易快速 opencv级联ha

个股场外期权怎么交易?场外期权交易流程是怎样的?

今天带你了解个股场外期权怎么交易?场外期权交易流程是怎样的?个股场外期权是一种非标准化的期权合约,通常在场外市场(OTC市场)由金融机构和投资者之间进行交易。 场外个股期权主要功能 风险管理: 帮助投…