Docker Network -基础与操作

969 阅读1分钟

一、基础知识

  • 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