docker网络模式、资源控制

docker网络模式

  1. Host Network(主机网络)

    • 特点
      • 在主机网络模式下,容器与宿主机共享网络命名空间,容器直接使用宿主机的网络栈。
      • 容器的网络设置与宿主机完全相同,容器可以直接访问宿主机的网络接口和端口。
      • 不进行网络地址转换,网络性能较高,但与宿主机之间的隔离性较差。
    • 使用场景
      • 需要最大化网络性能的场景,例如运行网络密集型应用程序或者需要直接访问主机网络接口的场景。
  2. Bridge Network(桥接网络)

    • 特点
      • 桥接网络是 Docker 默认的网络模式,适用于单主机上多个容器之间的通信。
      • 每个容器都有一个虚拟的网卡,连接到 Docker 主机的虚拟网络桥接设备上。
      • 桥接网络通过 NAT(Network Address Translation)来为容器提供网络连接,并为容器分配 IP 地址。
    • 使用场景
      • 构建多个容器之间的内部网络,容器可以相互通信,但与外部网络隔离。
      • 默认情况下,推荐使用桥接网络模式。
  3. Container Network(容器网络)

    • 特点
      • 容器网络模式允许多个容器共享同一个网络命名空间,即它们可以共享同一个网络栈。
      • 容器可以直接使用容器名称进行通信,而无需使用 IP 地址。
    • 使用场景
      • 需要在多个容器之间进行通信,并且希望容器之间能够直接使用容器名称进行通信的场景。
      • 例如,构建微服务架构中的多个容器,通过容器名称进行服务间通信。
  4. None Network(无网络)

    • 特点
      • 无网络模式禁用了容器的网络功能,容器之间无法进行通信,也无法访问外部网络。
      • 容器仍然可以访问本地的文件系统和进程空间,但无法通过网络进行通信。
    • 使用场景
      • 特殊场景,例如运行网络隔离的容器,或者在容器内部进行网络调试。

docker自定义IP

1.创建自定义网络: 如果您希望为容器指定特定的 IP 地址,可以先创建一个自定义网络。使用 docker network create 命令创建网络,并通过 --subnet 参数指定子网。例如:

docker network create --subnet=172.18.0.0/16 my_network

2.运行容器并指定 IP 地址: 使用 --ip 参数在特定的网络中为容器指定 IP 地址。如果您已经创建了自定义网络,可以通过 --network 参数指定网络名称。例如:

docker run --network my_network --ip 172.18.0.2 my_image

3.验证容器的 IP 地址: 运行容器后,可以使用 docker inspect 命令查看容器的详细信息,包括 IP 地址。例如:

docker inspect <container_id_or_name> | grep IPAddress

注意:

  • 如果您未指定网络,则容器将连接到默认的桥接网络。
  • 如果您未指定 IP 地址,则 Docker 将自动为容器分配 IP 地址。
  • 如果您指定了 IP 地址,务必确保它在所选网络的子网范围内,并且未被其他容器占用。
  • 如果要为容器指定特定的子网和网关,请在创建网络时使用 --subnet--gateway 参数。

资源控制

  1. CPU 资源控制

    • 使用 --cpu-shares 参数可以设置容器对 CPU 的相对权重,即容器使用 CPU 的比例。默认情况下,所有容器具有相同的权重(1024),但可以通过设置不同的权重值来调整容器之间的 CPU 使用优先级。
    • 使用 --cpus 参数可以限制容器可以使用的 CPU 核心数量,以实现对 CPU 资源的绝对控制。
  2. 内存资源控制

    • 使用 --memory 参数可以限制容器可以使用的内存量,以字节、兆字节或千兆字节为单位。
    • 使用 --memory-swap 参数可以设置容器可以使用的交换空间大小,通常设置为与 --memory 参数相同的值,或者设置为 -1 表示与内存大小相等。
    • 使用 --memory-reservation 参数可以设置容器的内存保留量,即即使系统内存不足时,也会保留给容器的最小内存量。
  3. IO 资源控制

    • 使用 --blkio-weight 参数可以设置容器对磁盘 IO 的相对权重,即容器使用磁盘 IO 的比例。
    • 使用 --device-read-bps--device-write-bps 参数可以限制容器的读取和写入磁盘的带宽。
    • 使用 --device-read-iops--device-write-iops 参数可以限制容器的读取和写入磁盘的 IOPS(每秒输入/输出操作数)。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值