一、基础知识

  • Docker安装后会主动建立三个网络:hostbridgenone
  • host:容器将不会虚拟出自己的网卡,装备自己的IP等,而是运用宿主机的IP和端口。
  • container:创立的容器不会创立自己的网卡,装备自己的IP,而是和一个指定的容器同享IP、端口范围。
  • none:该形式封闭了容器的网络功能。
  • bridge:此形式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,经过docker0网桥以及Iptables nat表装备与宿主机通信

二、基本指令

  1. 创立网络:docker network create --driver bridge --subnet 192.168.1.0/16 --gateway 192.168.1.0 [someName]
  2. 列出所有网络:docker network ls
  3. 删去:docker network rm [someName]
  4. 查看:docker network inspect [someName]
  5. 铲除不用的网络: docker network prune

三、docker compose

3.1 未显现声明

在下面的示例中,运转docker-compose up,会生成默许的网络,过程如下:

  • 创立名为myapp_default的网络;
  • 创立web容器并加入myapp_default网络,网络名称为web
  • 创立db容器并加入myapp_default网络,网络名称为db
version: "3.9"
services:
  web:
    build: .
    ports:
      - "8000:8000"
  db:
    image: postgres
    ports:
      - "8001:5432"

3.2 装备默许网络

networks:
  default:
    driver: custom-driver-1

3.3 创立自定义网络

networks:
  frontend:
    # Use a custom driver
    driver: custom-driver-1
  backend:
    # Use a custom driver which takes special options
    driver: custom-driver-2
    driver_opts:
      foo: "1"
      bar: "2"

3.4 运用已存在的网络

networks:
  default:
    external:
      name: my-pre-existing-network