Back to list
pluginagentmarketplace

docker-volumes

by pluginagentmarketplace

Docker plugin for container management and orchestration

1🍴 0📅 Jan 5, 2026

SKILL.md


name: docker-volumes description: Implement persistent storage with Docker volumes, bind mounts, and backup strategies sasmp_version: "1.3.0" bonded_agent: 04-docker-volumes bond_type: PRIMARY_BOND

Docker Volumes Skill

Master Docker persistent storage including named volumes, bind mounts, tmpfs, and data backup/restore procedures.

Purpose

Implement reliable data persistence for containers with proper volume management, backup strategies, and permission handling.

Parameters

ParameterTypeRequiredDefaultDescription
volume_namestringNo-Name for the volume
mount_typeenumNovolumevolume/bind/tmpfs
backupbooleanNofalseInclude backup commands

Storage Types

TypePersistenceUse CaseManaged By
Named VolumeYesProduction dataDocker
Bind MountYesDevelopment, configsHost
tmpfsNo (memory)Secrets, temp filesDocker
AnonymousContainer lifetimeScratch spaceDocker

Volume Operations

Named Volumes

# Create volume
docker volume create app_data

# Use in container
docker run -d \
  -v app_data:/var/lib/postgresql/data \
  postgres:16-alpine

# Inspect volume
docker volume inspect app_data

# List volumes
docker volume ls

# Remove unused volumes
docker volume prune

Bind Mounts

# Development - mount source code
docker run -d \
  -v $(pwd)/src:/app/src \
  node:20-alpine

# Read-only config
docker run -d \
  -v /etc/app/config.yaml:/app/config.yaml:ro \
  myapp

tmpfs Mounts

# Sensitive data in memory
docker run -d \
  --tmpfs /app/secrets:rw,noexec,nosuid,size=64m \
  myapp

# Compose syntax
services:
  app:
    volumes:
      - type: tmpfs
        target: /app/tmp
        tmpfs:
          size: 100m

Docker Compose Volumes

services:
  database:
    image: postgres:16-alpine
    volumes:
      - db_data:/var/lib/postgresql/data
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}

  app:
    image: myapp
    volumes:
      - uploads:/app/uploads
      - ./config:/app/config:ro

volumes:
  db_data:
    driver: local
  uploads:
    external: true  # Pre-created

Backup & Restore

Backup Volume

# Backup to tar file
docker run --rm \
  -v app_data:/source:ro \
  -v $(pwd)/backups:/backup \
  alpine tar cvf /backup/app_data_$(date +%Y%m%d).tar -C /source .

# Compressed backup
docker run --rm \
  -v app_data:/source:ro \
  -v $(pwd)/backups:/backup \
  alpine tar czvf /backup/app_data_$(date +%Y%m%d).tar.gz -C /source .

Restore Volume

# Restore from tar
docker run --rm \
  -v app_data:/dest \
  -v $(pwd)/backups:/backup:ro \
  alpine tar xvf /backup/app_data_20240101.tar -C /dest

Clone Volume

docker run --rm \
  -v source_volume:/from:ro \
  -v target_volume:/to \
  alpine cp -av /from/. /to/

Error Handling

Common Errors

ErrorCauseSolution
volume in useContainer runningStop container first
permission deniedUID mismatchFix ownership
no space leftDisk fullClean up or expand
path not foundBind mount missingCreate directory

Permission Fixes

# Check ownership
docker run --rm -v app_data:/data alpine ls -la /data

# Fix ownership (match container user)
docker run --rm -v app_data:/data alpine chown -R 1000:1000 /data

# SELinux (RHEL/CentOS)
docker run -v /host/path:/container/path:Z myimage

Troubleshooting

Debug Checklist

  • Volume exists? docker volume ls
  • Mount visible? docker exec <c> df -h
  • Permissions correct? ls -la in container
  • Data persisting? Stop/start container

Diagnostic Commands

# Check volume location
docker volume inspect app_data --format '{{.Mountpoint}}'

# Check container mounts
docker inspect <container> --format '{{json .Mounts}}'

# Check disk usage
docker system df -v

Usage

Skill("docker-volumes")
  • docker-compose-setup
  • docker-production

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon