docker-compose网络模式--network

@幻影忍者 2024-07-18 16:07:03 阅读 72

docker-compose.yml 配置文件中的 network_mode 是用于设置网络模式的,与 docker run 中的 --network 选项参数一样的,可配置如下参数:

Docker网络模式分类

Docker默认网络

      Docker默认提供了3种网络模式,当你安装Docker时,它会自动创建三个网络Bridge(创建容器,默认连接到此网络)、none、host

bridge

     这是Docker的默认网络模式。在桥接模式下,Docker会为每个容器分配一个IP地址,并创建一个本地的网络桥接接口,连接所有在该主机上运行的容器。通过桥接接口,容器可以相互通信,也可以与主机上的其他服务通信。桥接模式适用于单主机多容器的情况。

network_mode: "bridge"

host

     在主机模式下,容器与主机共享网络命名空间。容器将直接使用主机的网络接口,而不是创建独立的网络栈。这意味着容器可以使用主机上的所有网络功能和服务,包括使用主机的IP地址和端口。主机模式适用于需要容器与主机之间网络性能最大化的场景。

version: '3'

services:

  api-geteway:

    image: 镜像地址

    container_name: api-geteway

    environment:

      # 时区上海

      TZ: Asia/Shanghai

    volumes:

      # 配置文件

      - ./gatawary/logs/:/bussiness-test/api-geteway/logs/

      - ./gatawary/api_geteway-1.0.jar:/bussiness-test/api-geteway/app.jar

    restart: always

    privileged: true

    network_mode: "host"

none

     在无网络模式下,容器没有分配任何网络资源。这意味着容器内部没有网络接口,也没有IP地址。无网络模式适用于不需要网络连接的容器,例如用于批处理作业或与外部网络完全隔离的容器。

network_mode: "none"

container

      在容器模式下,多个容器共享同一个网络命名空间。这意味着这些容器可以使用相同的IP地址和端口,它们可以直接通过本地主机名相互通信,就像它们在同一个主机上一样。容器模式适用于需要多个容器之间进行高性能通信的场景。

network_mode: "container:[container name/id]"

自定义网络

       自定义网络模式允许用户创建和管理自己的网络。用户可以创建多个自定义网络,并将容器连接到这些网络中。自定义网络模式提供了更灵活的网络配置选项,例如指定子网、定义网络驱动程序和连接多个容器到同一个网络等。

# 创建子网掩码为16位的网段

docker network create --subnet=172.18.0.0/16 mynet

# 查看自定义网段信息

docker network inspect mynet

network_mode: "mynet"



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。