networks使用方式之官网教程
networks通常应用于集群服务,从而使得不同的应用程序得以在相同的网络中运行,从而解决网络隔离问题。这种应用在swarm部署中,非常常见。不过,本文并不做讨论。
一般对于集群服务,常常通过docker-compose.yml文档快速编排、部署应用服务。官网中给出了如下的使用场景和方式:
1. 未显式声明网络环境的docker-compose.yml
例如,在目录app下创建docker-compose.yml,内容如下:
version: '3'
services:
web:
mage: nginx:latest
container_name: web
depends_on:
- db
ports:
- "9090:80"
links:
- db
db:
image: mysql
container_name: db1234567891011121314
使用docker-compose up启动容器后,这些容器都会被加入app_default网络中。使用docker network ls可以查看网络列表,docker network inspect 可以查看对应网络的配置。
$ docker net work ls
NETWORK ID NAME DRIVER SCOPE
6f5d9bc0b0a0 app_default bridge local
0fb4027b4f6d bridge bridge local
567f333b9de8 docker-compose_default bridge local
bb346324162a host host local
a4de711f6915 mysql_app bridge local
f6c79184ed27 mysql_default bridge local
6358d9d60e8a none null local
12345678910
2. networks关键字指定自定义网络
例如下面的docker-compose.yml文件,定义了front和back网络,实现了网络隔离。其中proxy和db之间只能通过app来实现通信。其中,custom-driver-1并不能直接使用