docker-compose网络

1. 概念

网络模式

  • bridge
  • none
  • container
  • host
  • 外部网络,如: flannel、calico

2. 示例:网络创建和使用

  • 命令行创建网络
# docker network create mynetwork

# docker network ls
  • 使用docker-copose创建网络并使用

说明:以下以das项目为例

  • docker-compse启动das服务的同时创建了一个名为 xxx_kong-net的网络
  • xxx为创建网络的docker-compose.yaml文件所在目录的名字

docker-compose的yml文件中定义如下:

……
  user-center:
    image: 10.252.97.57/das/scs-user:1.0.1
    # 使用网络
    networks:
      - kong-net
    environment:
      - "SPRING_PROFILES_ACTIVE=test"
      - TZ=Asia/Shanghai
      - DB_HOST
      - DB_PORT
      - UPLOAD_PATH
      - KONG_URL
    ports:
      - "${APP_USER_PORT}:8088"
    volumes:
      - ./logs:/logs/
    container_name: das-user
    restart: always
# 创建网络
networks:
  kong-net:
    driver: bridge

  • 使用已有的网络
    在docker-compose.yml中使用已创建好的网络

仍然已das为例,刚才后端的yml文件已经创建了kong-net网络,此处直接引用并使用。

  web:
    image: "das/web:1.1.1"
    container_name: "iot-web"
    networks:
      - kong-net
    ports:
      - 8008:3080
    volumes:
      - ./web.conf:/.env
      - /etc/localtime:/etc/localtime
    restart: always
networks:
 kong-net:
   external:
     name: app_kong-net

3. 示例:指定网段和IP

  • 命令行指定
    命令行创建网络时,为网络指定网段。
docker network create --subnet=172.18.0.0/16 mynetwork
  • yaml文件中指定
    docker-compose.yaml中创建网络,为网络指定网段;并为容器指定合法IP。
    yaml文件中指定
  networks:
    backend:
      ipv4_address: 192.168.101.10
networks:
  backend:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.101.0/24
          gateway: 192.168.101.1

4. 示例:主机模式启动网络

  • 特点:端口不需映射
  • 使用
    具体服务下定义 network_mode: "host",以medier-server为例
version: "3.1"
services:
  media_server:
    image: harbocto.boe.com.cn/public/kurento-media-server
    environment:
      KMS_MIN_PORT: 5000
      KMS_MAX_PORT: 5050
      TZ: Asia/Shanghai
    #主机模式启动
    network_mode: "host"
    restart: always

你可能感兴趣的:(docker-compose网络)