docker-compose -volumes 两种不同定义方式

学习 docker-compose 部署hadoop集群、看到docker-compose 一种不同volumes定义方式

version: "3"

services:
  namenode:
    image: bde2020/hadoop-namenode:2.0.0-hadoop2.7.4-java8
    volumes:
      - namenode:/hadoop/dfs/name
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop-hive.env
    ports:
      - "50070:50070"
  datanode:
    image: bde2020/hadoop-datanode:2.0.0-hadoop2.7.4-java8
    volumes:
      - datanode:/hadoop/dfs/data
    env_file:
      - ./hadoop-hive.env
    environment:
      SERVICE_PRECONDITION: "namenode:50070"
    ports:
      - "50075:50075"
  ...

volumes:
  namenode:
  datanode:

docker-compose中有两种方式可以设置数据持久化。

1、绝对路径

db:
    image: mariadb:latest
    restart: always
    ports:
      - "3306:3306"
    volumes:
      - [直接使用宿主机的本地路径]:/var/lib/mysql

使用绝对路径直接挂载到本地,直观易于查看,但需要管理本地的路径。

2、卷标

db:
    image: mariadb:latest
    restart: always
    ports:
      - "3306:3306"
    volumes:
      - [卷标名称]:/var/lib/mysql

volumes:
  [卷标名称]:

使用卷标的方式,简洁易于管理,但是数据实际存放的位置需要费点周折才能看到。
查看卷标的信息

docker volume inspect [卷标名称]

#输出的信息中 Mountpoint 即为数据实际存放的位置
还可以查看所有的卷标

docker volume ls

https://www.jianshu.com/p/0beda3ece539