一、基础知识
- Docker安装后会主动建立三个网络:
host
、bridge
、none
- host:容器将不会虚拟出自己的网卡,装备自己的IP等,而是运用宿主机的IP和端口。
- container:创立的容器不会创立自己的网卡,装备自己的IP,而是和一个指定的容器同享IP、端口范围。
- none:该形式封闭了容器的网络功能。
- bridge:此形式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,经过docker0网桥以及Iptables nat表装备与宿主机通信。
二、基本指令
- 创立网络:
docker network create --driver bridge --subnet 192.168.1.0/16 --gateway 192.168.1.0 [someName]
- 列出所有网络:
docker network ls
- 删去:
docker network rm [someName]
- 查看:
docker network inspect [someName]
- 铲除不用的网络:
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