菜鸟教程: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