菜鸟教程:https://www.runoob.com/docker/docker-compose.html
networks
定义网络
default
默认情况下docker-compose会建立一个默认的网络,名称为docker-compose.yml所在目录名称小写形式加上“_default”,我们的TFLinux环境就是“tflinux_default”。
这个默认网络会对所有services下面的服务生效,所以services下面的各个服务之间才能够通过service名称互相访问。
如果要自定义默认网络可以针对“default”网络进行设置,这样就会影响导默认网络了。
networks:
default:
driver: bridge
自定义
除了默认网络之外,我们也可以建立自定义的网络,这个网络名称就比较随意了。
networks:
# 网络名称
persist:
driver: bridge
已存在网络
有时候我们想使用我们通过docker network create创建好的网络,而不是让docker-compose创建一个新的,这个时候就需要用到“external”关键字了。
networks:
#网络名称
persist:
external:
# 已存在docker network网络名称
name: bridge2
服务配置
注意:因为我们指定了persist特殊网络,所以default默认网络就自动失效了,如果需要使用default网络需要显性地指定下。
networks:
default:
driver: bridge
persist:
external:
name: bridge2
services:
# mysql
mysql:
build:
dockerfile: Dockerfile
context: ./image/mysql5.7
container_name: mysql
image: tflinux-mysql5.7
networks:
- default
- persist
volumes:
- /tongfu.net/env/mysql-5.7.28/data/:/var/lib/mysql/
restart: always