Skip to main content

Tipos de Volumes

  1. Named Volumes - Gerenciados pelo Docker
  2. Bind Mounts - Diretórios do host
  3. tmpfs Mounts - Armazenamento em memória

Criar Volume

docker volume create my-data
docker volume ls
docker volume inspect my-data

Usar Volumes

services:
  db:
    image: postgres:15
    volumes:
      - my-data:/var/lib/postgresql/data
      - ./backups:/backups

volumes:
  my-data:

Bind Mounts

docker run -v /host/path:/container/path nginx
docker run -v $(pwd):/app node

tmpfs

docker run --tmpfs /app/tmp nginx
services:
  app:
    tmpfs:
      - /app/tmp:size=100m

NFS Volume

volumes:
  nfs-data:
    driver: local
    driver_opts:
      type: nfs
      o: addr=192.168.1.100
      device: :/exports/data

Backup

docker run --rm \
  -v my-volume:/data \
  -v $(pwd):/backup \
  alpine \
  tar cvf /backup/backup.tar /data

Restore

docker run --rm \
  -v my-volume:/data \
  -v $(pwd):/backup \
  alpine \
  sh -c "tar xvf /backup/backup.tar -C /"