version: "3"
services:
  es:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    container_name: es
    environment:
      - discovery.type=single-node
    ports:
      - 9200:9200
    volumes:
      - esdata1:/usr/share/elasticsearch/data
  web:
    image: prakhar1989/foodtrucks-web
    command: python app.py
    depends_on:
      - es
    ports:
      - 5000:5000
    volumes:
      - ./flask-app:/opt/flask-app
volumes:
    esdata1:
      driver: local

上記のコードはここにあります:チュートリアル

VolumesはContainerが終わってもPersistするデータの事だと思いますが、既にここ:

volumes:
          - esdata1:/usr/share/elasticsearch/data

とここ:

volumes:
          - ./flask-app:/opt/flask-app

で各Container内にMount pointを指定していると思います。
なので最後の部分が何を指定しているのかが分かりません:

volumes:
        esdata1:
          driver: local