Как можно обезопасить Postgresql от случайного удаления volume с бд в Docker?
Никто и никогда не придумывал ничего более путного чем бэкапы и репликация. А вообще, нечего базу данных засовывать в контейнер
Сделай bind mounts:
db:
    restart: always
    image: postgres:12.0-alpine
    volumes:
      - /data/postgres_data:/var/lib/postgresql/data/